Powershell:为Get-Content管道设置编码

Powershell: Setting Encoding for Get-Content Pipeline

我有一个文件保存为ucs-2 little endian我想更改编码,所以我运行了以下代码:

1
cat tmp.log -encoding UTF8 > new.log

结果文件仍在ucs-2 little endian中。这是因为管道总是采用这种格式吗?有没有一种简单的方法可以将其作为utf8传输到一个新文件?


如建议:

1
Get-Content tmp.log | Out-File -Encoding UTF8 new.log


我会这样做:

1
get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8

我的理解是-encoding选项选择应该读取或写入文件的encdo。


使用编码从XML文件加载内容。

(获取内容-编码utf8$filename)


如果您正在读取一个XML文件,这里有一个更好的方法来适应XML文件的编码:

1
2
$xml = New-Object -Typename XML
$xml.load('foo.xml')