这个问题不应该在这里
答案 0 :(得分:1)
>
Redirection以及Out-File的默认编码为Unicode:
Out-File
cmdlet将输出发送到文件。您可以使用此cmdlet 当你需要使用它时,而不是重定向操作符(>
) 参数。<强> -Encoding 强>
指定文件中使用的字符编码类型。有效 值是“Unicode”,“UTF7”,“UTF8”,“UTF32”,“ASCII”, “BigEndianUnicode”,“默认”和“OEM”。
“Unicode”是默认。“默认”使用系统当前ANSI代码页的编码。
“OEM”使用当前的原始设备制造商代码页 操作系统的标识符。
示例脚本:
''
'$outputencoding>$env:TEMP\40763209.txt'
$outputencoding>$env:TEMP\40763209.txt
(Get-Content -Path $env:TEMP\40763209.txt -Encoding Byte -TotalCount 16 |
ForEach-Object {"{0:x2}" -f $_}) -join ' '
''
'$outputencoding|out-file $env:TEMP\40763209a.txt -Encoding utf8'
$outputencoding|out-file $env:TEMP\40763209a.txt -Encoding utf8
(Get-Content -Path $env:TEMP\40763209a.txt -Encoding Byte -TotalCount 16 |
ForEach-Object {"{0:x2}" -f $_}) -join ' '
输出:在两个文件中记下Byte Order Mark个签名:
PS D:\PShell> D:\PShell\SO\40763209.ps1
$outputencoding>$env:TEMP\40763209.txt
ff fe 0d 00 0a 00 0d 00 0a 00 49 00 73 00 53 00
$outputencoding|out-file $env:TEMP\40763209a.txt -Encoding utf8
ef bb bf 0d 0a 0d 0a 49 73 53 69 6e 67 6c 65 42