关于中文字符集问题的总结

问题描述

在解决了大部分问题并成功跑起程序后,我开始进行一些操作测试。然而,输入中文时却出现了乱码。经过一番排查,我发现程序中的字符集设置默认是 utf-8,但是 VSCode 的命令行终端似乎使用的是 gbk 编码,导致了中文乱码问题。


排查过程

  1. 检查 VSCode 设置
    我首先查看了 VSCode 的 settings.json 文件,发现其中的设置都是空白的,且提示:“此设置无法应用于此工作区。它将在您直接打开包含的工作区文件夹时应用。”

  2. 修改设置文件
    之后,我尝试切换到全局设置。在 VSCode 左上角选择 文件 -> 首选项 -> 设置,搜索 setting.json,并选择“在 setting.json 内部编辑”。我修改了一些编码相关的设置,但即便重启了 VSCode,中文乱码问题依然没有解决。
    图片1
    图片1
    图片1


进一步分析

无论我在 VSCode 内部切换 gbkutf-8 编码,都无法解决乱码问题。然后我发现可能是终端编码的问题。

通过查询,我得知 chcp 命令是用来切换命令行窗口的编码页,936gbk 编码(简体中文)。而 65001 对应的是 utf-8 编码。因此,我尝试使用以下命令切换编码:

1
chcp 65001

图片1
图片1
这一操作最终解决了 VSCode 内部终端乱码的问题。值得注意的是,当直接打开 cmd 时,中文输入并没有问题。


结论

问题的根本原因是 VSCode 内部终端的默认编码设置。虽然通过修改 settings.json 文件试图解决,但问题最终通过切换命令行终端的编码页得到了解决。因此,在使用 VSCode 时,如果遇到类似问题,可以通过 chcp 65001 来切换到 utf-8 编码,解决乱码问题。

至于直接输入中文的问题,我决定暂时不再使用 VSCode 终端输入中文,而是直接在外部终端中进行输入操作。

图片1