vscode日志文件中文乱码主因是utf-8与gbk编码错配;应先右下角点“utf-8”选reopen with encoding→gbk临时恢复显示,再save with encoding→utf8(全小写、无bom)永久转码。

右下角点“UTF-8”选 Reopen with Encoding → 试 GBK
日志文件(尤其是 Windows 下由 .bat、Java 应用、老旧服务导出的 .log、.txt、.out)90% 是 GBK 编码,而 VSCode 默认用 utf8 解码,两个字节被强行当 UTF-8 多字节序列解析,结果就是“锟斤拷”“烫烫烫”或方块。点击右下角显示的 UTF-8,选择 Reopen with Encoding → GBK,几乎立刻恢复正常。注意:如果菜单里 GBK 灰掉,先按 Ctrl+S 保存一下再点——VSCode 认为“未修改”时会禁用重载入口。
确认能看后必须 Save with Encoding → utf8(小写,无 BOM)
Reopen with Encoding 只是临时换种方式读,不改磁盘内容;真正修复得靠 Save with Encoding。显示正常后,再次点击右下角编码名 → 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/.ini 里?别全局设 utf8
全局配置 "files.encoding": "utf8" 对纯代码项目安全,但对含 .bat、.reg、.ini 的老项目危险:这些文件在 Windows 下依赖 GBK 执行,一旦被强制用 utf8 打开并保存,双击运行就报错或失效。更稳妥的做法是语言级覆盖:打开命令面板 Ctrl+Shift+P → 输入 Preferences: Configure Language Specific Settings → 选 Plain Text 或 Batch → 加入 "files.encoding": "gbk"。这样 .log 和 .txt 走 gbk,.py 仍走 utf8,互不干扰。











