Sublime Text 默认不自动检测编码,需手动启用 detect_encoding 并设 fallback_encoding 为 UTF-8;GBK/GB2312 乱码可能由 ConvertToUTF8 等插件干扰导致,应卸载并改用 EncodingHelper;保存编码需手动设置或借助 File Encoding Manager。

Sublime Text 默认不自动检测编码,必须手动配置
Sublime Text 不像 VS Code 或 Notepad++ 那样默认启用 BOM/内容启发式编码探测。它打开文件时只依赖 fallback_encoding(通常是 Western (Windows 1252))或文件末尾残留的编码声明,导致中文、日文等非 ASCII 内容普遍显示为方块或乱码。
启用 detect_encoding 并设置合理 fallback
Sublime Text 4+ 内置了基于 chardet 原理的轻量编码探测,但默认关闭。需修改用户设置激活:
{
"detect_encoding": true,
"fallback_encoding": "UTF-8",
"default_encoding": "UTF-8"
}
-
detect_encoding设为true后,Sublime 会在打开无 BOM 的文件时尝试分析前 10KB 字节,匹配常见编码(如GB2312、GBK、SHIFT_JIS、EUC-KR) -
fallback_encoding是探测失败后的兜底方案,设为UTF-8比Western (Windows 1252)更安全——多数现代文本即使误判也比全乱码好 -
default_encoding控制新建文件的编码,不影响已存文件的打开行为
处理 GBK/GB2312 文件仍乱码?检查是否被 hexadecimal 插件干扰
某些插件(如 HexViewer 或旧版 ConvertToUTF8)会劫持文件打开流程,绕过 Sublime 原生编码检测,强行按固定编码读取。典型现象是:关闭插件后乱码消失,重启后复现。
- 临时禁用所有插件:
Ctrl+Shift+P→ 输入Package Control: Disable Package,逐个停用可疑项 - 确认是否装了
ConvertToUTF8:该插件已停止维护,与 Sublime Text 4+ 的原生detect_encoding冲突,应卸载 - 若必须处理大量遗留 GBK 文件,可安装官方推荐的
EncodingHelper,它提供右键菜单快速重载为GBK,不干预自动检测逻辑
保存时编码未按预期?注意 save_with_encoding 行为
自动检测只影响「打开」,不改变「保存」逻辑。即使文件以 GBK 打开,按 Ctrl+S 默认仍以 UTF-8 保存,可能破坏兼容性。
- 保存前务必右键 →
Set Encoding→ 选中目标编码(如GBK),再执行保存 - 或安装
File Encoding Manager插件,支持按文件扩展名绑定默认保存编码(例如对.txt设为GBK,对.py强制UTF-8) - Sublime 不支持「保存时自动转为目标打开编码」,这点和编辑器定位有关——它不试图替代 iconv 工具链
真正难处理的是混合编码文件(比如部分行是 UTF-8,部分是 GBK),这种没有通用解法;自动检测会失败,最终得靠人工判断 + Reopen with Encoding 反复试。别指望一键终结所有乱码,能覆盖 90% 场景已是当前 Sublime 生态的极限。










