我的文本文件充满了问号。我怎样才能使它可读?

Hen*_*nke 3 character-encoding ansi utf-8 visual-studio-code

当我在Visual Studio Code中打开一个文本文件时,\n该文本包含很多我原本希望看到的问号\n瑞典字母,例如 \xc3\xa5、\xc3\xa4、\xc3\xb6 :

\n

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

\n

^ 点击放大

\n

在右侧(在VS Code的状态栏中),我注意到\nit 写着UTF-8
\n这是否与我面临的问题有关?

\n
\n

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

\n
\n

顺便说一句,当我在普通的旧Windows 记事本中打开同一文件时,文本显示正确:

\n

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

\n

在这种情况下,状态栏右下角显示的是 ANSI ,而不是 UTF-8。\n

\n

但在 VS Code 中,即使我单击UTF-8,然后单击\n Reopen with Encoding,我也找不到任何名为 ANSI 的编码。

\n

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

\n

如果您想使用我一直在使用的确切文件重现该行为,这里是.

\n

参考

\n\n

Hen*_*nke 7

\n

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

\n
\n

我可以想到两个选择:

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

如果您不想更改任何文件的编码,则最好使用第二个选项。

\n

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

\n

缩写ANSI代表\n美国国家标准协会

\n

ANSI编码的问题在于 \xe2\x80\x93 尽管名称\n表明它遵循标准 \xe2\x80\x93,但它是有条件的\n 与文本所使用的自然语言无关。
\n在这种情况下对于西欧(拉丁)语言,\n“ ANSI ”编码表示代码页Windows-1252。\n 1

\n

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

\n

在 VS Code 中,不查找ANSI编码,\n而是查找Windows-1252
\n我单击了UTF-8 > Reopen with Encoding,VS Code\n显示
\n“ Western (Windows 1252) Guessed from content”作为其\n首要建议。

\n

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

\n

^ 点击放大

\n

VS Code 正确猜测了编码Windows 1252
\n如果您不想更改编码,则现在已全部设置完毕。\n完成。

\n

否则,需要将文件转换为UTF-8编码。

\n

1b. 转换为 UTF-8

\n

状态栏现在显示Windows 1252而不是UTF-8
\n单击“Windows 1252”,然后单击“使用编码保存”:

\n

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

\n

现在点击“ UTF-8 utf8”:

\n

单击 UTF-8。

\n

这会将文件的非 ASCII 字符转换为UTF-8 并将文件编码为UTF-8

\n

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

\n

如果您不想转换为UTF-8,并且每次打开另一个文件 \xe2\x80\x93\n 时都会遇到此问题,您可能更愿意将 VS Code 设置为始终自动猜测编码。

\n

为此,您需要启用VS Code 的自动猜测编码功能。
\n按Ctrl+ ,\n 2 \n(逗号)并粘贴或键入autoGuessEncoding。\n选中显示以下内容的框:
\n“启用后,编辑器将在打开文件时尝试猜测字符集\n编码。\n此设置也可以可以按语言进行配置。\n请注意,文本搜索不考虑此设置。\n仅文件:考虑编码。”\n 3

\n

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

\n

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

\n

在互联网上搜索以了解“ANSI”在编码上下文中的含义\n可能会导致混乱。
\n您可能会遇到 ANSI 是“用词不当”的情况,\n这是事实,但没有多大实际帮助。

\n

消除混乱的方法是认识到,当 Microsoft 在 的状态栏中写入\n“ANSI”时notepad.exe,\n通常表示Windows-1252。\n对于西欧以外的自然语言,\n请参阅下表。
\n其他著名的文本编辑器,例如Notepad++,也采用了此约定,并在状态栏中写入“ANSI”。

\n

Windows-1252有时称为代码页 1252CP-1252。对于其他代码页也是如此。

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

参考

\n\n
\n \n

1 \n有关“ANSI”含义的列表,请参阅第 3 节中的表格。

\n

2 \n在 macOS 上,按\xe2\x8c\x98而不是Ctrl。\n对于 Linux 用户,“ANSI”通常表示 Windows-1252 \xe2\x80\x93,就像在 Windows 上\n一样。
\n对于 macOS 用户,请尝试查看 VS Code 的建议为\n从内容猜测
\n或者查看\n维基百科上的 Macintosh 模拟代码页

\n

3 \n查看VS Code 中的默认设置

\n
\n