右下角编码标识点不动?先确认是不是真乱码:点击右下角utf-8/gbk标识选reopen with encoding依次尝试gbk、gb2312、utf-8 with bom,若中文立即可读即为真实编码;否则可能是终端或系统层问题。

右下角编码标识点不动?先确认是不是真乱码
很多用户一看到中文显示为方块或问号,就急着改插件或 settings.json,结果越调越乱。其实第一步必须验证:这真是编码问题,而不是字体、终端或系统层的问题。
点击 VSCode 窗口右下角的 UTF-8 或 GBK 标识,选 Reopen with Encoding,依次试:GBK、GB2312、UTF-8 with BOM。只要中文立刻可读,说明文件真实编码就是它——不是插件没起作用,是你还没告诉 VSCode “该怎么读”。
- 别跳过这步直接装插件,90% 的“插件无效”其实是文件根本没用对编码打开
- 如果试完全都不行,可能是终端输出乱码(比如 Python
print到集成终端),和编辑器编码无关 -
Reopen with Encoding不改文件内容,安全;但之后必须做Save with Encoding才真正转换
files.autoGuessEncoding 开关决定你是否被坑
VSCode 默认关闭自动猜编码,但很多人为了“省事”手动开启 files.autoGuessEncoding,结果在中文项目里频繁翻车:短文本、无 BOM 的 GBK 文件、混合英文数字的注释,几乎全被误判成 windows1252 或 ISO-8859-1,一打开就变乱码。
正确做法是关掉它:
- 按
Ctrl+Shift+P→ 输入Preferences: Open Settings (JSON) - 加一行:
"files.autoGuessEncoding": false - 保存即生效,不用重启
- 关掉后,VSCode 完全依赖你设的
files.encoding或文件自带 BOM,行为稳定可预期
插件只辅助,核心还是靠 files.encoding 和 Save with Encoding
像 Change Encoding 这类插件,本质只是把右下角操作批量化,并不能绕过 VSCode 的底层编码逻辑。真正起效的永远是两件事:默认读取规则 + 实际保存动作。
- 全局默认设为
"files.encoding": "utf8"(写进settings.json用户设置) - 对旧 GBK 文件,必须手动
Reopen with Encoding → GBK,再Save with Encoding → UTF-8 - 插件批量转换时,若某文件已损坏或含非法字节,会静默跳过——得单独处理
- 不要依赖插件“自动识别并转码”,它不校验内容合法性,只按字节流硬转,可能把半个汉字切开
终端、Python 输出、Git 提交全乱?光改编辑器不够
即使编辑器里中文显示完美,终端里 print("你好") 还是乱码,或者 git diff 显示一堆 ,说明问题出在运行时环境,不是 VSCode 插件能解决的。
- Windows 下给 Python 加环境变量:
PYTHONIOENCODING=utf-8 - 终端本身要支持 UTF-8:PowerShell、Windows Terminal、Git Bash 可用;CMD 默认是
chcp 65001才行 - Git 设置:
git config --global core.autocrlf true+git config --global core.unicode true - VSCode 集成终端字体也要单独配:
terminal.integrated.fontFamily必须含中文字体,比如'Consolas', 'Microsoft YaHei'











