vscode中文注释乱码主因是文件实际编码(如gbk)与vscode默认utf-8解码不匹配;应通过右下角“reopen with encoding”逐一验证真实编码,再按语言类型在settings.json中配置"files.encoding":"gbk",而非全局硬设,且需手动重载或重启生效。

中文注释乱码不是字体或插件问题,90%是文件实际编码(如 GBK)和 VSCode 当前解码方式(默认 UTF-8)不匹配——关键在“怎么读”,不在“怎么显示”。
怎么快速确认当前文件的真实编码
只看右下角显示的编码名没用,得验证它是否匹配字节内容:
- 点击右下角编码名(比如显示
UTF-8),选Reopen with Encoding→ 依次试GBK、GB2312、UTF-8 with BOM;哪一项点完立刻恢复中文,哪项就是真实编码 - 终端里执行
file -i your.py(Linux/macOS)或certutil -hashfile your.js SHA256(Windows)辅助比对 - 如果
xxd your.py | head -n 1显示开头是d6 d0(“中”的 GBK 十六进制),就坐实是 GBK 编码
为什么不能全局设 "files.encoding": "gbk"
硬塞这个配置等于给所有新文件“判了刑”:
- 新建的
.py文件会以 GBK 保存 → Python 3 直接报SyntaxError: Non-UTF-8 code starting with - Git diff 出现大量
\344\270\255转义路径,协作时队友崩溃 -
.json、.ts等格式强制 GBK 会导致解析失败或编辑器警告
真正安全的设置:按语言类型绑定编码
只让特定后缀的文件走 GBK,其他照常用 UTF-8:
- 打开命令面板
Ctrl+Shift+P→ 输入Preferences: Configure Language Specific Settings - 选中当前文件语言(如
Python、Plain Text;注意 ShellScript 对应 ID 是shellscript,不是shell) - 在弹出的 JSON 片段里加一行:
"files.encoding": "gbk" - 旧文件仍乱码?正常——该设置只影响“下次打开”,需手动
Ctrl+K Ctrl+R重载,或关掉再开
保存也用 GBK?别漏掉这一步
语言专属设置只管“读”,不管“存”。如果你必须保持 GBK 编码(比如维护老项目),还得补上:
- 确保右下角状态栏始终显示
GBK(不是UTF-8) - 加配置
"files.autoSave": "onFocusChange",避免切窗口时意外以 UTF-8 保存 - 或者每次保存前手动点右下角 →
Save with Encoding→ 选GBK
最易被忽略的是:语言专属设置不会自动覆盖已打开文件的编码状态,也不影响未显式指定语言的文件(比如无后缀的 Makefile,它可能被识别为 Plain Text,得单独给 Plain Text 配编码)。











