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') |