Powershell:设置获取内容pipe道的编码

我有一个文件保存为UCS-2 Little Endian我想更改编码,所以我跑了下面的代码:

cat tmp.log -encoding UTF8 > new.log 

结果文件仍然在UCS-2 Little Endian中。 这是因为pipe道总是这种格式? 有没有一种简单的方法来pipe道这个UTF8的新文件?

如这里所build议的:

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

我会这样做:

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

我的理解是,-encoding选项select文件应该读取或写入的encdoing。

从编码的XML文件加载内容。

(Get-Content -Encoding UTF8 $ fileName)

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

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