VSCode打开中文文件乱码的根本原因是文件实际编码(如GBK)与VSCode默认识别的UTF-8不匹配;应先用“Reopen with Encoding”临时尝试GBK等编码,再通过语言专属设置或全局配置调整编码策略。

VSCode打开文件显示中文乱码怎么办
根本原因通常是文件实际编码(如 GBK)与 VSCode 当前识别的编码(默认 UTF-8)不匹配。VSCode 不会自动探测 GBK 类编码,尤其在 Windows 上用记事本保存的中文文件最容易中招。
遇到乱码时先别急着改设置,按 Ctrl+Shift+P(macOS 为 Cmd+Shift+P),输入并选择 Change File Encoding,再选 Reopen with Encoding,依次尝试 GBK、GB2312、Big5 —— 只要文字变正常,就说明找对了编码。
- 如果选错编码重开后更乱,按
Ctrl+Z不能恢复,得关掉文件重新打开 -
Reopen with Encoding是临时切换,不影响文件内容,安全 - 不要直接点
Save with Encoding,除非你确认要转码,否则可能破坏原文件
如何永久修改单个文件的默认编码
当某个文件(比如一份旧项目里的 readme.txt)总是用 GBK 打开,可以给它加一个“编码提示”。在文件最顶部空行处插入 BOM 或注释行(仅限部分语言支持),但 VSCode 更可靠的做法是配置文件关联编码:
打开命令面板 Ctrl+Shift+P → 输入 Preferences: Configure Language Specific Settings... → 选中当前语言(如 Plain Text)→ 在弹出的 settings.json 片段里加:
"files.encoding": "gbk"
注意:这个设置只对当前语言类型生效,不是全局覆盖;若文件无明确语言标识(如无后缀的配置文件),建议统一用 files.autoGuessEncoding 配合手动重开。
全局启用自动编码猜测是否靠谱
files.autoGuessEncoding 默认是 false,设为 true 后 VSCode 会在打开文件时尝试分析字节模式判断编码(类似 Sublime 的机制)。但它对中文支持有限:能较好识别 UTF-8 with BOM、UTF-16,但对 GBK/GB2312 基本无法准确猜中,反而可能误判成 Latin1 导致更乱。
- 开启后首次打开文件会稍慢(需扫描前几百字节)
- 某些含混合编码或特殊控制字符的文件会被错误识别
- 真正有效的场景反而是读取日志、爬虫导出的 CSV 等 UTF-8 / ISO-8859-1 混用文件
保存文件时强制用 UTF-8(推荐做法)
新项目、协作开发、Git 提交前,务必让文件以 UTF-8 保存。VSCode 默认就是 UTF-8,但如果你曾手动选过其他编码保存,右下角状态栏会显示当前编码(如 GBK),点击它 → 选 Save with Encoding → UTF-8 即可。
为防遗漏,可在用户设置中锁定:
"files.encoding": "utf8", "files.autoSave": "afterDelay", "files.insertFinalNewline": true
注意:utf8 和 utf8bom 不同——后者会写入 BOM,Windows 记事本友好,但多数现代工具(Node.js、Python、Git)更倾向无 BOM 的 UTF-8;除非对接老系统,否则用 utf8 更稳妥。
真正容易被忽略的是:VSCode 的编码设置分「用户级」和「工作区级」,工作区 .vscode/settings.json 会覆盖用户设置,多人协作时记得检查这个文件是否存在冲突配置。


















