vscode打开文件中文乱码本质是编码识别错误,非文件损坏或界面问题;应先右下角选“reopen with encoding→gbk”验证真实编码,再“save with encoding→utf8”转码,同时关闭autoguessencoding并按后缀用files.associations精准配置。

VSCode 打开文件乱码,本质是编码识别失败,不是语言包或界面设置的问题。改 locale 或装中文插件对乱码完全无效。
为什么打开 .py/.js/.txt 文件显示中文乱码
VSCode 默认用 UTF-8 解码文件,但旧项目、Windows 记事本保存的文件、Git 拉下来的脚本常是 GBK(Windows-1252)、GB2312 或 ISO-8859-1 编码。VSCode 不会自动猜 GBK,尤其当文件无 BOM 时,直接显示为方块或问号。
- 常见错误现象:
、???、中文变成一堆乱码符号,但右下角状态栏显示“UTF-8” - 这不是编辑器语言问题——界面设成中文也照样乱码
- 也不是文件损坏,用记事本或 Notepad++ 能正常打开,说明内容完好
手动指定编码并设为默认(推荐)
每次打开乱码文件后,点击右下角编码标识(如 UTF-8),选择 Reopen with Encoding → GBK 或 GB2312,就能立刻恢复中文。但这手动操作太累,得固化为默认行为。
- 按
Ctrl+,打开设置,搜索files.encoding - 找到
Files: Encoding,点击Edit in settings.json - 添加这行(注意逗号位置):
"files.encoding": "gbk" - 重启 VSCode 或重载窗口(
Ctrl+Shift+P→Developer: Reload Window)
此后新建/打开无 BOM 的中文文本文件,默认用 GBK 解码,不再乱码。
按文件类型或路径自动匹配编码(精准控制)
全局设 gbk 有副作用:比如你同时写 Python(推荐 UTF-8)和维护老 VBScript(GBK),一刀切会把 Python 文件也强制 GBK,导致语法报错。更稳妥的是按扩展名或路径区分。
- 搜索
files.autoGuessEncoding,**关闭它**(设为false)——这个选项实际不可靠,常猜错还拖慢打开速度 - 搜索
files.encoding,不要改全局值,而是点Edit in settings.json后添加files.associations和files.encoding组合规则:
"files.associations": {
"*.log": "utf8",
"*.conf": "utf8",
"*.bat": "gbk",
"*.vbs": "gbk"
},
"files.encoding": "utf8"
这样,只有 .bat 和 .vbs 文件默认用 GBK,其余保持 UTF-8。
容易忽略的关键点
VSCode 不会为你“记住某次文件的编码偏好”——除非你显式点击右下角 → Save with Encoding。这意味着:如果一个 .txt 文件上次用 GBK 打开过,下次仍可能被当成 UTF-8;必须靠 files.associations 或全局 files.encoding 来固化逻辑。另外,Git 提交时别用 GBK 保存源码文件,否则协作时别人拉下来又乱码——编码策略要和团队对齐,而不是单机调通就完事。











