中文注释显示方块或\u4f60\u597d,说明VSCode用UTF-8解码了GBK文件;应先右下角点“UTF-8”→Reopen with Encoding→GBK验证,再Save with Encoding→utf8(全小写、无BOM)真正转码。

中文注释显示为方块、 或 \u4f60\u597d,基本可以断定是 VSCode 用 UTF-8 解码了一个实际为 GBK 编码保存的文件——不是字体问题,也不是语言包缺失,更不是文件损坏。
右下角点“UTF-8”→选 Reopen with Encoding→GBK 是什么操作
这是验证真实编码最轻量、最安全的动作:不改字节、只换读法。Windows 上记事本新建并保存的 .js、.py、.txt 文件,默认就是 GBK(即 CP936),VSCode 却按 UTF-8 解析,必然出 。
- 点击右下角状态栏的
UTF-8→ 弹出菜单后优先试GBK;中文立刻恢复,就坐实了编码错配 - 如果更乱了,别按
Ctrl+Z(它不生效),直接关文件重开,再试GB2312或UTF-8 with BOM - 这个操作只是临时解码,不保存、不写盘,可反复试,零风险
Save with Encoding→utf8 才算真正修复
能看 ≠ 已修复。只靠 Reopen with Encoding,下次打开照样乱——必须把内容真正转成 UTF-8 写回磁盘。
- 确认
GBK下显示正常后,再次点击右下角编码名 → 选Save with Encoding→utf8(注意全小写、无短横、无 BOM) - 千万别选
utf8bom:Python 脚本开头会多\ufeff,报SyntaxError: Non-UTF-8 code starting with '\xff' - 保存后 Git diff 会显示完整变更,协作时其他人也不用再手动切编码
- 若文件含微信复制来的零宽空格(
U+200B)或混合编码,建议先粘贴到新文件再另存为utf8
settings.json 里 files.encoding 和 autoGuessEncoding 怎么设才不翻车
全局硬设 "files.encoding": "utf8" 看似省事,但对老项目是灾难:.bat、.reg、.ini 依赖 GBK,一打开就变方块。
- 新项目/协作开发:在用户级
settings.json加两行:"files.encoding": "utf8"和"files.autoGuessEncoding": false - 老项目混 GBK:在工作区根目录的
.vscode/settings.json里配"files.associations": {"*.txt": "gbk", "*.log": "gbk"} -
files.encoding值必须写成utf8(全小写),写成UTF-8、UTF8或带引号的"true",VSCode 直接静默忽略 - 右下角编码旁出现锁图标?说明该文件被“硬编码锁定”,此时所有设置失效;点右下角 →
Force Reload with Encoding,且不勾选“记住此选择”
真正麻烦的从来不是“怎么切编码”,而是“谁在什么时候用了什么编码写入”。Git 提交日志里的 \344\270\255\346\226\207、终端输出的空白方块、插件 Output 面板的 ,表面都是“中文乱码”,背后却是四条互不相交的链路:文件读写、终端渲染、Node.js 进程、Git 协议层。修一个,漏三个,是常态。


















