gpt4 book ai didi

Powershell 和 UTF-8

转载 作者:行者123 更新时间:2023-12-03 00:35:22 26 4
gpt4 key购买 nike

我有一个用 atom 创建的 html 文件 test.html,其中包含:

Testé encoding utf-8

当我使用 Powershell 控制台阅读时(我使用的是法语 Windows)

Get-Content -Raw test.html

我回来了:

Testé encoding utf-8

为什么重音字符不能正确打印?

最佳答案

  • Atom editor创建 UTF-8 文件没有 pseudo-BOM 默认情况下(从跨平台的角度来看,这是正确的做法)。

  • Windows PowerShell[1] 仅识别 带有伪 BOM 的 UTF-8 文件。

    • 在没有伪 BOM 的情况下,PowerShell 将文件解释为根据系统的旧 ANSI 代码页进行格式化,例如 Windows-1252例如,在美国系统上。
      (这也是记事本使用的默认编码,它称为“ANSI”,不仅在读取文件时,而且在创建文件时也是如此。Windows PowerShell 的 Get-Content/Set-Content (这里的编码称为 Default 并且是实际的默认值,因此不需要指定);相比之下, Out-File/> 创建 默认情况下 UTF-16LE 编码的文件(Unicode)。)

因此,为了让 Get-Content 在 Windows PowerShell 中正确识别 BOM-less UTF-8 文件,您必须 < strong>使用 -Encoding utf8.


[1] 相比之下,跨平台的 PowerShell Core值得称赞的版本默认为 UTF-8,在 cmdlet 中始终如一地读取和写入,因此即使没有 BOM,它也能正确解释 UTF-8 编码的文件,并且默认情况下也会创建没有 BOM 的文件。

关于Powershell 和 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42542560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com