立刻解决乱码需先执行“reopen with encoding → chinese (gbk)”;若无效再试gb2312或windows 1252;确认中文正常后,再用“save with encoding → utf-8”保存为utf-8。

Sublime Text 打开 GBK 文件显示乱码,不是插件没装,也不是默认编码设错了,而是它根本没用 GBK 去读——你得先手动告诉它“这个文件是 GBK”,它才能把字节流正确解成中文。其他所有操作(包括装插件、改设置)都建立在这个前提上。
怎么立刻让乱码文件显示正常?
别点右下角状态栏的编码名反复切换,那是拿错解码方式去解释一堆已错解的乱码字节,只会更糟。真正有效的动作只有一条路径:
- 打开乱码文件 → 菜单栏
File→Reopen with Encoding→ 试Chinese (GBK) - 如果还是乱码,再试
Chinese (GB2312)或Western (Windows 1252) - 只要中文一出来,右下角状态栏变成
Chinese (GBK),就说明原始编码识别对了 - 此时你看到的是内存里已正确解码的 Unicode 内容,磁盘文件一个字节都没变
ConvertToUTF8 插件现在还值得装吗?
对 Sublime Text 4(Build 4126+)用户,基本不推荐。它自 2020 年起停止更新,ST4 的 API 变动导致常见失效现象:状态栏不显示编码名、右键无反应、Package Settings 里压根找不到入口。即使强行安装,也容易和原生编码逻辑冲突,造成状态栏显示错乱或保存行为异常。
如果你必须用(比如维护老 ST3 项目),注意三点:
- 只能通过
Package Control: Install Package安装,手动拖文件夹到Packages目录在 ST4 中大概率无效 - 装完必须重启,否则插件监听事件不注册,等于没装
- 首次启用后要进
Preferences → Package Settings → ConvertToUTF8 → Settings – User,写入配置:{ "convert_on_load": true, "convert_on_save": true, "confidence": 0.95 }其中confidence设太高(如 0.98)会漏掉弱信号 GBK 文件,太低(0.85)又可能把带 BOM 的 UTF-8 错判为 GBK
Save with Encoding → UTF-8 到底干了什么?
这是唯一真正修改磁盘文件的动作。前面所有操作(包括插件自动转换)都只影响内存里的显示,不碰磁盘一字节。只有这一步,才把当前已正确解码的 Unicode 内容,严格按 UTF-8 编码规则重新写回文件。
关键约束条件:
- 必须在
Reopen with Encoding → Chinese (GBK)确认中文正常显示之后执行 - 菜单选
File → Save with Encoding → UTF-8(注意不是UTF-8 with BOM) - 保存后关闭再重开,右下角应显示
UTF-8,且中文依然正常;如果别人用记事本打开还是乱码,说明你第一步原始编码就判断错了 - 该动作失败时会弹报错,不会静默丢字——但若原始编码误判(比如把 UTF-8-BOM 当 GBK),保存后内容就真毁了,不可逆
fallback_encoding 怎么设才生效?
它不是万能兜底,只在“无 BOM + Sublime 自动检测失败”时触发。很多 Windows 下的 GBK 文件连这个条件都不满足,所以不能依赖它解决当前乱码问题。
正确写法(加在 Preferences → Settings – User):
{ "default_encoding": "UTF-8", "fallback_encoding": "Chinese (GBK)" }
注意:
-
fallback_encoding必须用完整内置标识符,写"GBK"或"utf-8"会被静默忽略 -
default_encoding控制新建文件和Save with Encoding弹窗默认选项,不设它,新建 .py 文件打中文一保存就是乱码 - 改完设置后,已打开的乱码文件不会自动刷新——必须手动对它执行一次
Reopen with Encoding → Chinese (GBK)
最常被忽略的一点:文件是否带 BOM。用 xxd 文件名 | head -n1 查看,输出含 ef bb bf 就是 UTF-8-BOM,Sublime 会优先识别 BOM 并忽略 fallback_encoding。这种文件不需要插件,也不需要 Reopen with Encoding,直接 Save with Encoding → UTF-8 即可——前提是它本来就是 UTF-8。











