vscode中文乱码主因是编码错配,非文件损坏;应先右下角点“utf-8”选reopen with encoding→gbk验证真实编码,确认显示正常后save with encoding→utf8永久转码,并配置"files.autoguessencoding": false和"files.encoding": "utf8"确保稳定。

右下角点“UTF-8”后选 Reopen with Encoding 试 GBK
VSCode 打开中文乱码文件,90% 是因为文件实际是 GBK 编码,但编辑器默认按 UTF-8 解码。这不是文件损坏,只是读错了字节流。最直接验证方式就是点击右下角显示的编码名(比如 UTF-8 或 GBK),选 Reopen with Encoding → GBK。文字立刻变正常,就说明找对了;如果更乱,关掉重开再试 GB2312 或 UTF-8 with BOM。
注意:Reopen with Encoding 不改文件内容,纯属临时解码,安全可逆。别指望 files.autoGuessEncoding 帮你猜准——它对无 BOM 的 GBK 文件基本失效,常误判成 ISO-8859-1 或 windows1252。
确认后必须 Save with Encoding → UTF-8
能看 ≠ 已修复。只靠 Reopen with Encoding 是权宜之计,下次打开照样乱。真正要解决协作、Git 提交和插件解析问题,得把文件内容永久转成 UTF-8。
- 确认显示正常后,再次点击右下角编码名,选
Save with Encoding→UTF-8(不是UTF-8 with BOM) -
UTF-8 with BOM在 Python/Shell 脚本里可能触发SyntaxError: Non-UTF-8 code starting with '\xff' - 如果保存后反而乱码,说明原文件混用了编码(比如部分段落是
GBK、部分是UTF-8),此时不要覆盖原文件,先复制内容到新文件再另存为UTF-8
settings.json 里只设 files.encoding: "utf8" 不够
"files.encoding": "utf8" 这个配置只影响新建的空文件,对已存在的文件完全无效。老项目里一堆 .py、.txt、.conf 还是会按自身 BOM 或历史编码判断。
真正有用的组合配置是:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": false,
"files.encodingSave": "utf8"
}
"files.autoGuessEncoding": false 是关键——关掉自动猜编码后,VSCode 行为才可预期,不会中途突然变乱。而 "files.encodingSave": "utf8" 能确保你手动保存时默认走 UTF-8,减少误操作。
终端输出乱码要单独处理 terminal.integrated.env.windows
编辑器里文件编码全对,终端运行 Python 或 Shell 脚本仍乱码?那是终端环境没同步。Windows 下 cmd/PowerShell 默认用代码页 936(即 GBK),而脚本输出的是 UTF-8 字节流。
在 settings.json 中加这段:
"terminal.integrated.env.windows": {
"PYTHONIOENCODING": "utf-8",
"CHCP": "65001"
}
这会让终端启动时自动设置输出编码为 UTF-8。配合 chcp 65001 命令或 PowerShell 的 [Console]::OutputEncoding=[System.Text.UTF8Encoding]::new(),才能让 print("你好") 真正不乱。
字体链没配好也会显示方块,即使编码全对——这点容易被忽略,但属于另一层问题,不在编码设置范畴内。











