Sublime Text 打开无BOM中文文件乱码的根源是 fallback_encoding 探测失败,默认应设为 "UTF-8";default_encoding 控制新建文件编码,也设为 "UTF-8";已乱码文件需手动 Reopen with Encoding → UTF-8 后保存。

修改 Sublime Text 的默认文件编码设置
Sublime Text 默认新建文件的编码是 UTF-8,但部分系统(尤其是 Windows)下,打开本地未声明编码的文本文件时,它可能 fallback 到 GBK 或 CP1252,导致中文显示为乱码。这不是“新建文件编码”问题,而是“文件打开时的自动编码探测逻辑”问题——必须调整的是 fallback_encoding 和 default_encoding 行为。
通过 Preferences → Settings 修改编码策略
打开 Preferences → Settings(左右双栏),在右侧用户设置(User Settings)中添加或修改以下字段:
{
"default_encoding": "UTF-8",
"fallback_encoding": "UTF-8",
"detect_indentation": false,
"auto_indent": true
}
关键点说明:
-
default_encoding控制新建文件的初始编码,设为"UTF-8"即可 -
fallback_encoding才是解决乱码的核心:当 Sublime 无法从 BOM 或内容推测编码时,它会用这个值尝试解码;设为"UTF-8"强制优先用 UTF-8 解析,避免误判为 GBK - 若你常处理带 BOM 的 UTF-8 文件,
fallback_encoding设为"UTF-8"仍有效;BOM 会被自动识别,无需额外配置 - 不要设成
"UTF-8 with BOM"—— Sublime 没这个编码名,会直接报错或退回到系统默认
遇到已打开乱码文件时的临时修复方法
如果文件已经打开并显示乱码(比如一堆 或方块),说明 Sublime 当前用错了编码解码。此时不能靠改设置立即生效,需手动重载:
- 菜单栏选择
File → Reopen with Encoding → UTF-8 - 或者快捷键:
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Reopen with Encoding: UTF-8回车 - 确认内容恢复后,再执行
File → Save with Encoding → UTF-8,确保下次打开不重蹈覆辙
插件和命令行场景下的编码注意事项
某些插件(如 SideBarEnhancements 或构建系统)可能绕过主设置读取文件;命令行用 subl file.txt 打开时,也依赖上述配置生效。特别注意:
- Sublime 的构建系统(
Tools → Build System)输出编码由 shell/终端决定,和编辑器编码无关,乱码要查终端 locale(Linux/macOS)或chcp(Windows) - 如果用
Convert to UTF-8插件,请确认它是否写入了 BOM —— 多数现代工具(Git、Python 解释器)反感 BOM,建议关闭插件的 BOM 写入选项 - Windows 上用记事本保存的 .txt 文件,若含中文且无 BOM,极大概率被 Sublime 错判为
Western (Windows 1252),这时仅靠fallback_encoding不够,还需配合encoding_map插件做白名单匹配(小众但有效)
fallback_encoding 这个字段容易被忽略,但它才是打开旧文件不乱码的真正开关。










