先确认文件真实编码,再用reopen with encoding匹配解码,最后save with encoding转存;linux/macos用file -i、windows用notepad++查实编码,禁用detect_encoding,配置"default_encoding": "utf-8"和"fallback_encoding": "chinese (gbk)"。

Sublime Text 打开 GBK 文件显示乱码,不是文件坏了,也不是编辑器抽风,而是它用 UTF-8 规则去解 GBK 字节流——结果必然是“锟斤拷”或方块。解决核心只有一条:先确认真实编码,再匹配读法,最后按需转存。
怎么确认文件真实编码,而不是瞎试
Sublime 右下角显示的 UTF-8 或 Western (ISO 8859-1) 只是当前解码方式,不是文件本来的编码。满屏乱码时,它大概率正用错规则读你。
- 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)、UTF-8、GB2312,看到中文就停 -
Save with Encoding:真把当前视图内容按新编码重写到磁盘,不可逆。必须在Reopen with Encoding确认显示正常后才用 - 绝对别点
Convert to UTF-8(老版本菜单里有):它会静默重写文件且不提示,原始编码信息直接丢失
用户设置里 fallback_encoding 怎么写才生效
fallback_encoding 字段不接受标准编码名,写 "UTF-8" 或 "GBK" 是无效配置,等于没设。Sublime 只认自己内置的编码标识符。
- 正确写法是:
"fallback_encoding": "Chinese (GBK)"或"Western (Windows 1252)" - 它只在“无 BOM + 自动检测失败”时触发;带 UTF-8 BOM 的文件仍走 UTF-8,不会触发 fallback
- 推荐配对使用:
"default_encoding": "UTF-8"+"fallback_encoding": "Chinese (GBK)",兼顾新建文件和旧项目乱码文件 - 顺手删掉配置里可能存在的
"detect_encoding": true—— 这个开关反而干扰判断
ConvertToUTF8 插件要不要装
它能自动识别 GBK 并转成 UTF-8 显示,省去手动 Reopen with Encoding,但有明确边界和风险。
- 安装后需重启 Sublime;配置入口在
Preferences → Package Settings → ConvertToUTF8 → Settings - 默认保存回原编码(即 GBK),如需统一存为 UTF-8,必须把
"save_to_original_encoding"设为false - ST4(Build 4126+)兼容性更好,但仍建议先关掉
convert_on_open测试单个文件 - 已装过 ConvertToUTF8 的用户,卸载后务必检查 Package Settings 里是否残留配置,否则重启后仍可能干扰原生逻辑
真正难处理的,不是“怎么转”,而是“怎么确认原始编码”——尤其当文件短、混合编码、带 BOM 或来自不同系统时,靠猜或插件自动检测都容易翻车。手动用 file -i 或 Notepad++ 验证,仍是最快最稳的第一步。











