没有BOM的UTF8编码 - PowerShell

时间:2013-07-17 12:21:55

标签: powershell encoding utf-8 cmd byte-order-mark

我有一个bat文件,我编码了一些CSV文件。问题是,一旦编码完成,文件的开头就有一个字符(我猜是BOM字节)。这个字符困扰我编码后的原因,我用这个文件生成一个数据库。 这是编码行(在bat文件中):

powershell -Command "&{ param($Path); (Get-Content $Path) | Out-File $Path -Encoding UTF8 }" CSVs\\pass.csv

有没有办法对没有BOM的文件进行编码(如果这是问题)??

谢谢!

1 个答案:

答案 0 :(得分:3)

我找到了解决方案。 只需改变这一行:

powershell -Command "&{ param($Path); $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False); $MyFile = Get-Content $Path; [System.IO.File]::WriteAllLines($Path, $MyFile, $Utf8NoBomEncoding) }" CSVs\\pass.csv