我有一个名为test.txt
的文件,其中包含一个中文字符中
。
此字符看起来像这样
在hex-editor的视图下。
如果我get-content test.txt | Out-File test_output.txt
,则test_output.txt
的内容与test.txt
不同。为什么要这样做?
我已经尝试了所有列出的编码参数here(" Unicode"," UTF7"," UTF8",&#34 ; UTF32"," ASCII"," BigEndianUnicode","默认"和" OEM"),但没有一个正确转换中国人。
如何使用Get-Content
和Out-File
正确转换中文字符?
编码e4 b8 ad
看起来像中
的{{3}},这就是为什么所有编码参数都与这个中文字符不兼容的原因?
答案 0 :(得分:0)
我尝试了get-content test.txt -encoding UTF8 | Out-File test_output.txt -encoding UTF8
我的test.txt
是“ e4 b8 ad 0a”。输出结果是“ef bb bf e4 b8 ad 0d 0a”
test.txt
是UTF-8。
Get-Content
无法识别UTF-8。 Out-File
默认使用UTF-16。
因此,必须为两个命令指定编码
答案 1 :(得分:0)
就我而言, Unicode 编码解决了我的汉字问题。我正在修改的文件在TFS服务器上包含一个C#代码。
$path="test.cs"
Get-Content -Path $path -Encoding Unicode
Set-Content -Path $path -Encoding Unicode
这可能会帮助其他人。