VSCode中文乱码主因是文件编码(如GBK)与编辑器解码方式(默认UTF-8)不匹配;应先右下角点UTF-8→Reopen with Encoding试GBK验证,再Save with Encoding→utf8(全小写无BOM)修复,遇锁图标须取消“记住此选择”。

VSCode文件中文显示乱码,90%以上是文件实际编码(如GBK)和VSCode当前解码方式(默认utf8)不匹配——不是文件损坏,也不是编辑器出错,只是“拿英文词典读中文报纸”。
右下角点UTF-8 → 选Reopen with Encoding试GBK
这是最快验证真实编码的操作,安全、可逆、不改磁盘文件:
- 看到乱码时,第一反应不是改设置、不是装插件,而是点击右下角显示的
UTF-8(或GB2312等) - 菜单里选
Reopen with Encoding→ 优先试GBK(Windows记事本、老日志、.ini/.bat/.reg文件基本都用它) - 如果中文立刻变正常,说明原始就是
GBK;若仍乱,再试GB2312或UTF-8 with BOM - 如果菜单里
GBK是灰色不可点,先按Ctrl+S保存一下(让VSCode认为文件已修改),再点即可
显示正常后必须Save with Encoding → utf8(全小写,无BOM)
只靠Reopen with Encoding是临时“看”,真正修复得把内容转成通用编码存回磁盘:
- 确认中文显示无误后,再次点击右下角编码名 → 选
Save with Encoding→ 严格选utf8(注意:不是UTF-8,不是UTF8,更不是utf8bom) - 选
utf8bom会导致Python报SyntaxError: Non-UTF-8 code starting with '\xff',Git diff里冒出\ufeff,CI也可能失败 - 如果文件里混有微信复制来的零宽空格(U+200B)或特殊控制符,建议全选→粘贴到新空白文件→再
Save with Encoding,避免污染
右下角出现锁图标?所有设置都失效,必须手动解锁
一旦你勾选过“记住此选择”,VSCode就会给该文件硬编码锁定,此时files.autoGuessEncoding、语言级files.encoding全部被无视:
- 点击右下角带锁的编码名 → 选
Reopen with Encoding→ 再次选当前能正常显示的编码(如GBK)→ **务必取消勾选“记住此选择”** - 验证是否解锁:关闭该文件标签页,重新打开,看状态栏是否变回灰色、无锁
- 锁状态不会因改
settings.json自动刷新,不重开就永远无效 -
files.autoGuessEncoding必须是布尔值true,写成"true"(带引号)VSCode直接忽略
别全局设"files.encoding": "gbk",按后缀或语言精准覆盖
把"files.encoding": "gbk"加进全局settings.json看似省事,实则埋雷:
- 它会让所有新文件(包括
.py、.js)默认用gbk保存,破坏现代项目兼容性 - 正确做法是语言级配置:按
Ctrl+Shift+P→ 输入Preferences: Configure Language Specific Settings→ 选Plain Text或Batch→ 加"files.encoding": "gbk" - 或者在工作区
.vscode/settings.json里用files.associations匹配后缀:"*.log": "gbk"、"*.ini": "gbk" - 对纯代码项目,建议关掉自动猜测:
"files.autoGuessEncoding": false+"files.encoding": "utf8",行为更可预期
真正决定后续是否反复踩坑的,不是第一次点右下角有多快,而是Save with Encoding时有没有看清utf8三个字母全小写、没BOM,以及那个锁图标有没有被注意到并清除干净。


















