没有答案的困境

时间:2016-11-23 11:25:00

标签: fclose

这个问题不应该在这里

1 个答案:

答案 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