使用PowerShell以UTF编写文件

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

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

如何使用PowerShell以UTF-8编写不含BOM的文件?


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

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

到目前为止, 正确的方法是使用@Roman Kuzmin推荐的解决方案在@M中的解决方案。 达德利回答:

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

(我也通过删除不必要的System名称空间澄清来缩短它 - 它将被默认自动替换。)


我想这不会是UTF,但我只是找到了一个非常简单的解决方案,似乎工作...

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

对我来说,无论源格式如何,这都会导致utf-8无bom文件。

链接地址: http://www.djcxy.com/p/29109.html

上一篇: Using PowerShell to write a file in UTF

下一篇: Delete files older than 15 days using PowerShell