vscode中文注释乱码的根本原因是文件编码未设为utf-8且自动猜测开启,与中文语言包无关;必须手动配置files.encoding为utf8、关闭files.autoguessencoding,并正确保存文件编码。

离线安装中文语言包后,为什么中文注释还是乱码
中文语言包只改界面文字,不碰文件编码。乱码根源在 files.encoding 仍为默认值或被自动猜错,和语言包完全无关。你装完中文界面再打开一个老项目里的 .py 文件,右下角可能还显示 GBK 或 auto,这就是问题所在。
离线安装中文包的步骤本身不影响编码设置,但容易让人误以为“装完就万事大吉”。实际必须手动干预编码配置,否则新建文件仍可能用系统默认(Windows 是 gbk),旧文件继续按上次记录的编码打开。
settings.json 里必须写的三行关键配置
打开命令面板(Ctrl+Shift+P),输入 Preferences: Open Settings (JSON) 回车,粘贴以下内容(注意是用户 settings.json,不是工作区):
{
"files.encoding": "utf8",
"files.autoGuessEncoding": false,
"files.defaultLanguageForEmptyFiles": "plaintext"
}
为什么这三行不能少:
-
"files.encoding": "utf8":强制所有未声明编码的新建/无 BOM 文件用 UTF-8 打开;注意必须是小写utf8,写成UTF-8或UTF8VSCode 直接忽略 -
"files.autoGuessEncoding": false:关掉自动猜测——它在无 BOM 的 GBK 文件上几乎必错,一猜一个乱码,关掉反而更稳 -
"files.defaultLanguageForEmptyFiles": "plaintext":避免新建空文件时被错误关联到某语言模式(比如误设为python),导致语言级编码规则干扰
右下角编码状态栏点什么、不点什么
打开一个已乱码的文件,右下角显示比如 GBK 或 Auto,点击它后出现的菜单里:
- 选
Reopen with Encoding→UTF-8:只改本次读法,安全验证,不改文件字节 - 确认内容正常后,再点一次右下角,选
Save with Encoding→UTF-8(注意不要选UTF-8 with BOM):真正把文件转成 UTF-8 存盘 - 千万别在没确认前就点
Save with Encoding—— 万一猜错编码,保存即永久损坏,Ctrl+Z 也救不回来
如果点完 Reopen with Encoding 后更乱,说明不是 UTF-8,换 GBK 或 GB2312 再试;VSCode 不会记住这次选择,下次打开还是按原编码读。
终端输出中文还是乱码?那是另一层问题
改完文件编码,运行 Python 脚本时终端仍显示方块,说明问题出在集成终端本身,和编辑器读取无关。Windows 下需在 settings.json 中补上终端编码配置:
{
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "/c", "chcp 65001"]
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell"
}
这个配置让每次启动 PowerShell 终端都先执行 chcp 65001,把代码页切到 UTF-8。不加这句,就算文件是 UTF-8、Python 源码也声明了 # -*- coding: utf-8 -*-,终端照样吐问号。
最易忽略的是:文件编码、终端编码、Python 运行时环境变量(如 PYTHONIOENCODING)三者必须一致。只调其中一层,永远有漏网之鱼。











