use*_*291 3 powershell utf-8 utf
我有一个用atom创建的html文件test.html,其中包含:
\n\n\n\n\n测试\xc3\xa9编码utf-8
\n
当我使用 Powershell 控制台阅读它时(我使用的是法语 Windows)
\n\nGet-Content -Raw test.html\n
Run Code Online (Sandbox Code Playgroud)\n\n我得到这个:
\n\nTest\xc3\x83\xc2\xa9 encoding utf-8\n
Run Code Online (Sandbox Code Playgroud)\n\n为什么重音字符打印不正确?
\nAtom编辑器默认创建没有伪BOM 的UTF-8 文件(从跨平台的角度来看,这是正确的做法)。
Windows PowerShell [1]仅识别带有伪 BOM 的UTF-8 文件。
Get-Content
/也是如此Set-Content
(其中调用此编码Default
,并且是实际的默认编码,因此不需要未指定);相比之下,Out-File
/默认>
创建UTF-16LE 编码文件 ( )。)Unicode
因此,为了Get-Content
在 Windows PowerShell 中正确 识别无 BOM 的UTF-8 文件,您必须使用-Encoding utf8
.
[1] 相比之下,跨平台PowerShell Core版本值得称赞的是默认为 UTF-8,在读取和写入时跨 cmdlet 一致,因此即使没有 BOM,它也能正确解释 UTF-8 编码的文件,并且默认情况下还会创建没有 BOM 的文件。
归档时间: |
|
查看次数: |
8419 次 |
最近记录: |