我的文本文件中充满了问号。如何才能使其可读?

我的文本文件中充满了问号。如何才能使其可读?

当我打开一个文本文件时Visual Studio 代码,文本中包含很多问号,而我原本希望看到瑞典字母,例如 å、ä、ö:

我的文本文件中充满了问号。

^点击放大

向右下方(在状态栏中VS 代码),我注意到上面写着UTF-8
这和我面临的问题有关系吗?


我怎样才能使所有这些字母正确显示?


附注:当我以普通方式打开同一个文件时 Windows 记事本,文本显示正确:

我的文本文件在记事本中正确显示。

在这种情况下,状态栏显示的不是 UTF-8,而是美国国家标准在右下角。

但在 VS Code 中,即使我点击UTF-8,然后 使用编码重新打开,我找不到任何名为 ANSI 的编码。

VS Code:UTF-8 > 使用编码重新打开 > 没有 ANSI!

如果你想用我使用的确切文件重现这种行为,这里是

参考

答案1

我怎样才能使所有这些字母正确显示?

我能想到两个选择:

  1. 将文件转换为UTF-8.——这是我的推荐。
  2. 配置 VS Code 以自动检测最合适的编码。

第二种选择更可取 如果你绝不想要更改任何文件的编码

选项 1.将文件转换为 UTF-8

缩写美国国家标准代表 美国国家标准协会

问题在于美国国家标准编码是——尽管名字表明它遵循一个标准——但它是有条件的 文本是用什么自然语言编写的。
对于西欧(拉丁)语言,“美国国家标准“编码表示代码页Windows-12521

1a. 让 VS Code 使用正确的编码

在 VS Code 中,无需寻找美国国家标准编码,寻找Windows-1252
我点击了UTF-8>使用编码重新打开,VS Code 显示
西方(Windows 1252)根据内容猜测”作为其首要建议。

VS Code 正确猜测编码是 Windows 1252。

^点击放大

VS Code 正确猜出了编码窗户 1252
如果你想要更改编码,现在一切就绪。

否则,转变文件UTF-8编码。

1b. 转换为 UTF-8

状态栏现在显示窗户 1252代替UTF-8
点击窗户 1252然后使用编码保存

单击 Windows 1252 > 使用编码保存。

现在点击“UTF-8utf8”:

单击 UTF-8。

皈依者文件的非 ASCII 字符UTF-8 将文件编码为UTF-8

选项 2.配置 VS Code 以自动检测编码

如果你想要转换为UTF-8,如果你每次打开其他文件时都会遇到这个问题——你可能更愿意将 VS Code 设置为总是自动猜测编码。

为了实现这一点,您需要启用自动猜测编码 VS Code 的功能。
Ctrl+ , 2 (逗号)并粘贴或键入autoGuessEncoding。选中以下框:
“启用后,编辑器将在打开文件时尝试猜测字符集编码。此设置也可以根据语言进行配置。请注意,文本搜索不尊重此设置。仅尊重文件:编码。” 3

选中该框以使 VS Code 自动猜测编码。

3. 关于“ANSI”编码含义的困惑

在互联网上搜索“ANSI”在编码上下文中的含义可能会引起混淆。
您可能会遇到 ANSI 是“用词不当”,这是事实,但没有太多实际帮助。

消除这种困惑的方法是意识到,当微软在 的状态栏中写上“ANSI”时notepad.exe,通常意味着Windows-1252。对于西欧以外的自然语言,请参阅下表。
其他知名的文本编辑器,例如记事本++,都采用了这个惯例,并在状态栏中写入“ANSI”。

Windows-1252有时被称为代码页 1252 或者CP-1252. 其他代码页也同样如此。

美国国家标准编码 语言/字母
Windows-1250 斯拉夫语 – 拉丁字母(例如波兰语)
Windows-1251 斯拉夫语 – 西里尔字母(例如乌克兰语)
Windows-1252 西欧语言(法语、德语、斯堪的纳维亚语、西班牙语、斯瓦希里语……)
Windows-1253 希腊语
Windows-1254 土耳其语、拉丁阿塞拜疆语和拉丁乌兹别克语
Windows-1255 希伯来语
Windows-1256 阿拉伯语、波斯语、乌尔都语
Windows-1257 波罗的海语言:爱沙尼亚语、拉脱维亚语、立陶宛语
Windows-1258 越南语
Windows-1270 萨米语

参考


1 有关“ANSI”的列表可以平均值见第 3 节的表格。

2 在 macOS 上,按 而不是Ctrl。对于 Linux 用户,“ANSI”通常表示 Windows-1252 – 就像在 Windows 上一样。
对于 macOS 用户,请尝试查看 VS Code 建议的内容 根据内容猜测
或者看看 维基百科上的 Macintosh 仿真代码页

3 参见VS Code 中的默认设置

相关内容