vscode中文乱码主因是编码不匹配,须先右下角点编码名选reopen with encoding试gbk验证真实编码,确认显示正常后save with encoding→utf8覆写文件,并设"files.autoguessencoding": false和"files.encoding": "utf8"确保稳定。

右下角点编码名 → 选 Reopen with Encoding 试 GBK
VSCode 状态栏右下角显示的 UTF-8 或 GBK 只是它“这次打算怎么读”,不是文件真实编码。乱码时第一动作必须是验证:点击状态栏编码名,选 Reopen with Encoding,依次尝试 GBK、GB2312、UTF-8 with BOM。Windows 上记事本保存的 .txt/.log/.ini 文件,90% 是 GBK,一试就恢复正常。选项灰掉?先按 Ctrl+S 保存一下再点——VSCode 认为“未修改”时会禁用重载入口。
确认能看后 → 必须 Save with Encoding → utf8(小写,无BOM)
Reopen with Encoding 只是临时换种方式读,不改文件内容;真正修复得靠 Save with Encoding。确认 GBK 能正常显示后,再次点击右下角编码名,选 Save with Encoding → utf8(注意全小写、无短横、无 BOM)。选 utf8bom 会导致 Python 报 SyntaxError: Non-UTF-8 code starting with '\xff',Git diff 显示一堆 \ufeff,CI 构建也可能失败。如果文件是从微信复制粘贴的,可能含零宽空格(U+200B),建议先复制内容到新文件再执行此步。
为什么改了 files.encoding 还是乱?锁图标和值写法陷阱
右下角编码旁出现锁图标,说明该文件已被硬编码锁定——此时所有全局设置(包括 files.encoding、files.autoGuessEncoding)全部失效。解锁方法:点右下角 → Reopen with Encoding → 再选一次当前能正常显示的编码(如 GBK),**不要勾选“记住此选择”**。另外两个常见坑:files.autoGuessEncoding 必须是布尔值 true,写成字符串 "true"(带引号)VSCode 完全忽略;files.encoding 的值必须是 utf8(全小写),写成 UTF-8、UTF8 或 utf8bom,VSCode 直接跳过。
老项目混着 .bat/.reg 文件?别全局设 utf8
全局配置 "files.encoding": "utf8" 对新建项目安全,但对老项目危险:.bat、.reg、.ini 文件在 Windows 下依赖 GBK 执行,一旦被强制用 utf8 打开并保存,双击运行就会报错或失效。更稳妥的做法是语言级配置:打开命令面板 Ctrl+Shift+P → 输入 Preferences: Configure Language Specific Settings → 选 Plain Text 或 Batch → 加入 "files.encoding": "gbk"。这样 .py 文件走 utf8,.bat 文件仍按 gbk 处理,互不干扰。
Save with Encoding → utf8 那一下确认——而且必须小写、无 BOM、不勾选“记住”。











