Powershell Out-file特殊字符

时间:2017-08-17 12:16:39

标签: powershell encoding utf-8

我有一个处理文件数据的脚本,并根据条件将结果写入txt。给定的数据是带有单词的字符串:“Distribución”或“México”。处理时,“é”和“ó”等特殊字符会被破坏(典型的白色方块或问号)。

如何对输出文件进行编码以使其与这些字符一起使用?我尝试在Utf8编码,没有BOM的utf8,它不起作用。这是文件写作行:

...| Out-file -encoding XXX .\result.txt

在XXX我试过ASCII,Utf8,没有用:/

1 个答案:

答案 0 :(得分:1)

Out-File将始终添加BOM。这是一个特别烦人的功能"那个Cmdlet。不幸的是 - 据我所知 - 没有快速的方法来保存使用UTF8的文件而没有PowerShell中的BOM。但是,您可以利用.Net来执行此操作。这不是真正的生产准备,但这是一个简单的例子:

$outputPath = "D:\temp.txt"
$data = "Distribución or México"
[System.IO.File]::WriteAllLines($outputPath, $data)

将其包装在Cmdlet,函数和/或模块中以使其可重用。当然,您也可以使用.Net更多地控制文件编码。