Sublime Text 4中文乱码主因是detect_encoding关闭导致无法自动识别GBK/GB2312,须在用户设置中启用detect_encoding:true、fallback_encoding:"UTF-8"、default_encoding:"UTF-8";ConvertToUTF8插件已与ST4冲突,应卸载并改用EncodingHelper或原生Reopen with Encoding手动指定编码。

Sublime Text 4 默认不启用编码自动检测
打开 GBK/GB2312 文件直接乱码,不是你操作错了,是 Sublime Text 4 默认关闭了 detect_encoding。它不会像 VS Code 那样扫描文件内容猜编码,而是硬套 fallback_encoding(默认是 Western (Windows 1252)),结果中文全变方块。
必须手动改用户设置才能激活原生探测能力:
- 打开
Preferences → Settings - 在右侧用户设置里添加这三行:
{"detect_encoding": true,"fallback_encoding": "UTF-8","default_encoding": "UTF-8"} - 保存后立即生效,无需重启
注意:detect_encoding 只影响「打开」,不影响「保存」;即使文件以 GBK 打开,Ctrl+S 默认仍存为 UTF-8 —— 这是设计如此,不是 bug。
ConvertToUTF8 插件已与 Sublime Text 4 冲突
别再搜 ConvertToUTF8 安装了。它在 Sublime Text 4+ 上会劫持文件读取流程,绕过原生 detect_encoding,强行按固定编码加载,反而导致原本能自动识别的 GBK 文件变成稳定乱码。
典型症状:
- 关掉插件,乱码消失;重启 Sublime,乱码复现
- 状态栏显示
GBK,但文字仍是方块 - Package Control 搜索不到该插件(官方已下架)
如果你已安装,请立刻卸载:Ctrl+Shift+P → Package Control: Remove Package → ConvertToUTF8。长期维护的替代方案是 EncodingHelper(提供右键「Reopen with Encoding」菜单)或干脆不用插件,靠原生探测 + 手动重载。
保存时如何保持原始编码不被覆盖
Sublime Text 原生不支持“打开什么编码就默认保存什么编码”。想让 GBK 文件保存后还是 GBK,只有两个可靠办法:
- 每次保存前,先点右下角编码名称 → 选
Chinese Simplified (GBK)→ 再按Ctrl+S - 装
File Encoding Manager插件,配置按扩展名绑定保存编码:{"extensions": {"txt": "GBK","log": "GBK","ini": "GBK"},"default_encoding": "UTF-8"}
File Encoding Manager 的规则只作用于保存行为,不影响打开逻辑,和原生 detect_encoding 兼容。注意:它不会自动转换内容,只是控制写入字节流的编码格式。
检测失败时手动指定编码最稳
原生探测覆盖约 90% 场景,但遇到混合编码、超短文本(
- 打开乱码文件
- 点右下角当前编码(如显示
UTF-8)→ 弹出菜单选Reopen with Encoding → Chinese Simplified (GBK) - 如果还不对,尝试
Chinese Simplified (GB2312)或Chinese Traditional (BIG5)
这个操作本质是告诉 Sublime:“别猜了,就用这个编码重新读”。它比任何插件都快、无副作用,且所有选项都在原生菜单里,不依赖第三方代码。真正难的从来不是“怎么配”,而是意识到:自动检测只是辅助,最终决定权在你手上——尤其当文件来自老旧系统、邮件附件或 Windows 记事本时。


















