Sublime Text中文乱码主因是编码错配,须先用file -i或Notepad++确认文件真实编码,再通过Reopen with Encoding选Chinese (GBK)等正确解码方式显示,最后Save with Encoding→UTF-8转存;配置应设"default_encoding": "UTF-8"、"fallback_encoding": "Chinese (GBK)"并禁用detect_encoding。

Sublime Text 显示中文乱码,不是文件坏了,也不是编辑器出问题,而是它用错了编码去读你的文件——比如拿 UTF-8 的规则去解一个 GBK 字节流,结果必然满屏方块。解决的关键不是“装插件”或“调字体”,是先搞清文件真实编码,再匹配正确的解码方式。
怎么确认文件真实编码,而不是瞎猜
Sublime 右下角显示的“UTF-8”只是它当前用什么解码,并不等于文件就是 UTF-8。你看到方块字,恰恰说明它正在用错的方式读。
- Linux/macOS 下运行
file -i 文件名,看输出里的charset=字段(例如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 为什么不能写 "UTF-8"
fallback_encoding 字段不接受标准编码名,写 "UTF-8" 是无效配置,等于没设。
- 正确写法是:
"fallback_encoding": "Chinese (GBK)"或"Western (ISO 8859-1)",这些是 Sublime 内部注册的编码标识符 -
default_encoding才支持"UTF-8",它管新建文件和显式保存时的默认编码 - 推荐组合:
"default_encoding": "UTF-8"+"fallback_encoding": "Chinese (GBK)",兼顾新建文件和旧项目乱码文件 - 顺手加一行
"save_with_bom": false,否则保存后 Python/Git 会报Non-UTF-8 code starting with '\xef'
ConvertToUTF8 插件要手动装,别信 Package Control 搜索结果
Package Control 官方仓库早已下架 ConvertToUTF8,现在搜到的大多是过期镜像或恶意 fork。
- 正确做法:去 GitHub 搜
seanliang/ConvertToUTF8(作者原 repo,最后更新于 2020,仍是目前最稳的) - 下载 master 分支的 zip,解压得到文件夹,重命名为
ConvertToUTF8 - 打开 Sublime Text 的
Packages目录:Preferences → Browse Packages…,把文件夹拖进去 - 重启 Sublime,右下角状态栏应出现编码自动识别提示
真正难处理的是混合编码文件——比如部分行是 GBK、部分行是 UTF-8,或者 BOM 被截断、中间插入了非法字节。这种情况下,Reopen with Encoding 和插件都会失效,得靠 xxd 或 iconv 手动清洗。但绝大多数“乱码”其实根本没改错地方,只是在瞎试编码。

















