Sublime Text 默认编码非 UTF-8 导致中文文件乱码,需在 Preferences → Settings — User 中设置 "default_encoding": "UTF-8" 和 "fallback_encoding": "UTF-8"(ST4 已弃用后者,推荐用 ConvertToUTF8 插件或手动重开编码)。

Sublime Text 默认编码不是 UTF-8,打开非 ASCII 文件(比如中文文件)时大概率乱码,根源在 fallback_encoding 和 default_encoding 的默认值上。
怎么让 Sublime 自动用 UTF-8 打开所有文件
Sublime 不会“自动检测编码”,它靠配置项决定用什么编码打开未知编码的文件。关键就两个设置:
-
default_encoding:新建文件时用的编码(设为"UTF-8"即可) -
fallback_encoding:打开一个没声明编码、也没 BOM 的文件时,用来猜的兜底编码(Windows 上默认是"Western (Windows 1252)",这就是乱码主因)
修改方式:菜单栏 Preferences → Settings — User,在右侧 JSON 中加这两行:
{
"default_encoding": "UTF-8",
"fallback_encoding": "UTF-8"
}
改完保存,重启 Sublime。之后新建文件、双击打开无 BOM 的 .txt/.py/.md 等文件,基本不会再乱码。
为什么改了还是乱码?常见错误场景
即使设置了 fallback_encoding,以下情况仍会乱码:
- 文件本身有 BOM(比如 Windows 记事本保存的 UTF-8 带 BOM),Sublime 会优先按 BOM 解码,但部分旧版 Sublime 对 UTF-8+BOM 支持不稳
- 文件是 GBK/GB2312 编码(常见于老 Win 系统生成的中文文本),而你强行设
fallback_encoding为 UTF-8,结果就是“错上加错” - 你用的是 Sublime Text 4,
fallback_encoding已被弃用,改用detect_indentation相关逻辑,此时必须靠插件或手动转码
验证当前文件真实编码:右下角状态栏点编码名(如 UTF-8 或 Western),选 Reopen with Encoding → Chinese (GBK) 尝试;能正常显示,说明原文件是 GBK。
Sublime Text 4 用户特别注意
ST4 移除了 fallback_encoding,不再提供全局兜底编码。它现在依赖:
- 文件是否有 BOM
- 是否匹配
detect_indentation规则(和缩进无关,是历史命名残留) - 最后才是硬编码的 fallback 列表(不可配置)
所以 ST4 用户更推荐:
- 安装插件
ConvertToUTF8(支持 GBK/Big5/JIS 等自动转 UTF-8 并保存) - 或用
File → Reopen with Encoding手动选对编码,再Save with Encoding → UTF-8转存 - 别依赖“一次设置,永远不乱码”——中文环境里,编码从来不是纯配置问题
真正麻烦的不是改配置,而是你根本不知道手头这个文件到底是什么编码。BOM 可能被删,编辑器可能记错历史编码,连 file -i 在 Linux 下都可能误判。多备一个 iconv 或在线编码检测工具,比死磕 Sublime 设置更省时间。










