为什么这个Powershell命令总是导致不同的文件编码?

时间:2017-06-17 18:36:58

标签: windows powershell encoding windows-7 ucs2

如果file1.txt以ANSI编码,则运行此命令:

powershell -Command "(gc file1.txt) -replace 'foo', 'bar' | Out-File file2.txt"

然后file2.txt始终在UCS-2 LE BOM中编码。

为什么,以及如何指定输出为ANSI编码?

2 个答案:

答案 0 :(得分:2)

您也可以继续使用Set-Content。这似乎将编码保留在文件中,因此您不必担心,这可能是正确的。

powershell -Command "(gc file1.txt) -replace 'foo', 'bar' | Set-Content file2.txt"

答案 1 :(得分:0)

使用-enconding Ascii确保输出文件为ASCII。

命令将是:

powershell -Command"(gc file1.txt)-replace' foo',' bar' | Out-File -Encoding Ascii file2.txt"