使用PowerShell用UTF-8编写不带BOM的文件

2024-04-26 04:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

Out-File在使用UTF-8时似乎强制使用BOM:

$MyFile = Get-Content $MyPath
$MyFile | Out-File -Encoding "UTF8" $MyPath

如何使用PowerShell用UTF-8编写没有BOM的文件?


Tags: 文件getcontentutf8bomoutmyfileutf
3条回答

目前,正确的方法是使用@Roman Kuzminin comments向@M.Dudleyanswer推荐的解决方案:

[IO.File]::WriteAllLines($filename, $content)

(我还通过去掉不必要的System名称空间说明将它缩短了一点-默认情况下,它将被自动替换。)

使用.NET的^{}类并将$False传递给构造函数似乎是可行的:

$MyFile = Get-Content $MyPath
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)

我想这不会是UTF,但我发现了一个非常简单的解决方案,似乎可以。。。

Get-Content path/to/file.ext | out-file -encoding ASCII targetFile.ext

对我来说,这会导致一个没有bom文件的utf-8,不管源格式如何。

相关问题 更多 >