薪酬管理系统--关于终端字符集问题
关于中文字符集问题的总结
问题描述
在解决了大部分问题并成功跑起程序后,我开始进行一些操作测试。然而,输入中文时却出现了乱码。经过一番排查,我发现程序中的字符集设置默认是 utf-8
,但是 VSCode 的命令行终端似乎使用的是 gbk
编码,导致了中文乱码问题。
排查过程
-
检查 VSCode 设置
我首先查看了 VSCode 的settings.json
文件,发现其中的设置都是空白的,且提示:“此设置无法应用于此工作区。它将在您直接打开包含的工作区文件夹时应用。” -
修改设置文件
之后,我尝试切换到全局设置。在 VSCode 左上角选择 文件 -> 首选项 -> 设置,搜索setting.json
,并选择“在 setting.json 内部编辑”。我修改了一些编码相关的设置,但即便重启了 VSCode,中文乱码问题依然没有解决。
进一步分析
无论我在 VSCode 内部切换 gbk
或 utf-8
编码,都无法解决乱码问题。然后我发现可能是终端编码的问题。
通过查询,我得知 chcp
命令是用来切换命令行窗口的编码页,936
是 gbk
编码(简体中文)。而 65001
对应的是 utf-8
编码。因此,我尝试使用以下命令切换编码:
1 | chcp 65001 |
这一操作最终解决了 VSCode 内部终端乱码的问题。值得注意的是,当直接打开 cmd
时,中文输入并没有问题。
结论
问题的根本原因是 VSCode 内部终端的默认编码设置。虽然通过修改 settings.json
文件试图解决,但问题最终通过切换命令行终端的编码页得到了解决。因此,在使用 VSCode 时,如果遇到类似问题,可以通过 chcp 65001
来切换到 utf-8
编码,解决乱码问题。
至于直接输入中文的问题,我决定暂时不再使用 VSCode 终端输入中文,而是直接在外部终端中进行输入操作。