最可能的解释:
您正在运行Windows PowerShell,它根据系统的活动 ANSI 代码页(1250
在您的示例中)读取其源代码。
相比之下,Visual Studio Code默认创建无BOM 的 UTF-8编码文件。
如果源代码文件(或 Windows PowerShell 读取的任何文本文件,例如使用Get-Content
)中没有 BOM,则假定为ANSI编码,因此 UTF-8 文件被错误解释。
具体来说,任何非 ASCII 字符的每个单独字节(在 UTF-8 中始终编码为多字节序列)然后被解释为 ANSI 字符。
注意:这在 PowerShell (Core) 7+ 中不再是问题,它始终默认为 UTF-8,无论是在读取无 BOM 文件时还是在写入文件时(无 BOM UTF-8)。
因此,解决方案是将您的源代码(或您希望 Windows PowerShell 正确读取的任何 UTF-8 文件)保存为带有 BOM 的UTF-8。
您还需要为要在两个版本的 PowerShell 中正常运行的源代码执行此操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句