根本原因是解码方式错误,而非编码设置错误;Sublime Text 4 用 UTF-8 解析 GBK 字节流导致“锟斤拷”,须先 Reopen with Encoding 选 Chinese (GBK) 正确解码,再 Save with Encoding → UTF-8 真正转码保存。

乱码不是编码设错了,是解码方式错了
Sublime Text 4 打开中文文件显示“锟斤拷”或方块,根本原因不是文件坏了,也不是编辑器故障,而是它用 UTF-8 规则去解析一段 GBK 字节流——两个字节被强行拼成一个 Unicode 码点,结果必然崩坏。右下角显示的 UTF-8 或 Western (Windows 1252) 只是当前解码方式,不代表文件真实编码。
验证真实编码最可靠的方式:
- Linux/macOS 下运行
file -i 文件名,看输出中charset=gbk或charset=utf-8 - Windows 用户直接用 Notepad++ 打开,右下角明确显示
GBK、UTF-8-BOM等,比 Sublime 更可信 - 别信
detect_encoding: true:它会让 Sublime 主动跳过 BOM 去试 GBK,反而把带 BOM 的 UTF-8 文件判成乱码,建议从配置里删掉
Reopen with Encoding 和 Save with Encoding 别点反了
这两个菜单项功能完全相反,点错一次就可能把能读的文件“转坏”。
Reopen with Encoding:只改当前视图怎么读文件,不改磁盘内容,安全。乱码后立刻点击右下角编码名 → 选 Chinese (GBK) 或 Chinese (GB2312);只要中文能看清,就说明原始编码判断对了。
Save with Encoding:真把内存里已解码的内容,按新编码重写到磁盘,不可逆。必须在 Reopen with Encoding 显示正常后才用,否则会把乱码字节二次编码成双乱码。
特别注意:
- 别点
Convert to UTF-8(老版本菜单里有):它会静默重写文件且不提示,原始编码信息直接丢失 - 保存时选
UTF-8,不是UTF-8 with BOM;否则 Python/Git 会报Non-UTF-8 code starting with '\xef' - 状态栏点击
UTF-8只是重解析内存内容,不改磁盘字节,也不做任何转换
ST4 配置项已失效,别再瞎配 fallback_encoding
Sublime Text 4 彻底移除了 fallback_encoding 配置项,写进去也不生效。它现在靠三步判断打开方式:是否有 BOM → 是否匹配内置检测规则 → 最后才走硬编码兜底列表(不可配置)。你加 "fallback_encoding": "UTF-8" 完全无效,等于没设。
真正起作用的配置只有两个:
-
default_encoding_on_save:决定 Ctrl+S 时以什么编码落盘,必须设为"UTF-8" -
save_with_bom:控制是否加 BOM,必须设为false,否则保存后开头多出\xef\xbb\xbf
在 Preferences → Settings — User 中添加:
{
"default_encoding_on_save": "UTF-8",
"save_with_bom": false
}
default_encoding 已被官方标记为“已弃用”,它只影响新建文件右下角显示的编码标识、以及“另存为”对话框默认选中的编码项,不控制实际写入行为。
插件选 Codecs37,别硬上 ConvertToUTF8
截至 2026 年中,ConvertToUTF8 在 Sublime Text 4.4+ 上已基本不可靠。它依赖的底层库(如 chardet)在 ST4 中兼容性断裂,且作者自 2020 年起未更新。GitHub 官方仓库已归档,Package Control 里搜到的基本是镜像或改名版本,存在兼容性差甚至安全风险。
Codecs37 是目前更稳的选择:
- 支持
GBK/GB18030/Shift_JIS等 30+ 编码 - 持续维护,安装后开箱即用
- 打开 GBK 文件时状态栏直接标出
GBK,无需额外配置
安装方式:命令面板输入 Package Control: Install Package → 搜索 Codecs37 → 安装 → 重启。
如果菜单里没出现 Chinese (GBK),说明没装基础编码支持——别信 Package Control 搜到的过期镜像,去 Preferences → Browse Packages… 手动放一个 GBK Support 插件文件夹。
最麻烦的永远不是配置,而是项目里混着 UTF-8-BOM、GBK、ANSI 的文件——没有银弹,得一个个查实锤、手动重开、再转存。配置只是辅助,真正要盯住的是右下角状态栏和磁盘里的字节本身。


















