状态栏不显示编码需启用show_encoding:在用户设置中添加"show_encoding": true;若仍不显示,可能是文件为无名缓冲区、二进制格式、特殊面板或被插件覆盖;utf-8与utf-8 with bom显示不同,后者含bom头ef bb bf;显示western或undefined说明检测失败,可改fallback_encoding为utf-8。

状态栏不显示编码?检查 show_encoding 是否启用
Sublime Text 默认不显示文件编码,必须手动开启。核心配置项是 show_encoding,它控制状态栏是否显示当前文件的编码(如 UTF-8、GBK)。这个选项只影响状态栏右下角的文本,不影响实际读写行为。
实操建议:
- 打开
Preferences → Settings(或直接按Ctrl+,),在右侧用户设置中添加:"show_encoding": true
- 保存后,新打开或已打开的文件会立刻在状态栏右下角显示编码(如
UTF-8) - 如果已有文件未刷新显示,可尝试
File → Reopen with Encoding → UTF-8触发一次重载
为什么改了设置还是不显示?注意视图模式和文件类型
即使 show_encoding 为 true,某些情况下状态栏也不会显示编码——不是配置失效,而是 Sublime 主动隐藏了它。
常见原因:
- 当前文件是「无名缓冲区」(即新建但未保存的空文件),状态栏只显示
Plain Text,不显示编码 - 文件被识别为二进制格式(如图片、PDF),Sublime 不尝试检测编码,状态栏不显示
- 使用了某些插件(如
SideBarEnhancements或自定义状态栏插件),可能覆盖或抑制原生编码显示 - 当前视图是
Find Results或Console等特殊面板,它们没有编码概念,自然不显示
UTF-8 和 UTF-8 with BOM 显示区别在哪?
Sublime 对这两种编码的显示逻辑不同:普通 UTF-8 就显示 UTF-8;带 BOM 的则明确标为 UTF-8 with BOM。这个区分很重要,尤其在 Windows 下处理 Python 脚本或 JSON 文件时,BOM 可能导致解析失败。
验证方法:
- 用十六进制编辑器查看文件头:BOM 是
EF BB BF - 在 Sublime 中,执行
File → Save with Encoding → UTF-8会去除 BOM;选UTF-8 with BOM则写入 - 注意:某些语言(如 Python 3.12+)对 BOM 更敏感,状态栏看到
UTF-8 with BOM就该警惕是否需要清理
编码显示异常?优先排查 fallback_encoding 和自动检测失败
如果状态栏显示的是 Western (Windows 1252) 或 Undefined,说明 Sublime 没能正确识别编码。它不是瞎猜,而是按顺序尝试:BOM → 文件内容启发式检测 → fallback_encoding 配置项。
关键点:
-
fallback_encoding默认是Western (Windows 1252),中文文件常因此误判为乱码。可在用户设置中改为:"fallback_encoding": "UTF-8"
- 自动检测对混合编码或短文本(如只有几行中文)容易失败,此时手动执行
File → Reopen with Encoding → GBK或UTF-8更可靠 - 状态栏显示的编码名,永远是 Sublime “认为当前生效”的编码,不等于文件物理存储编码——它只是当前解码所用的假设
真正麻烦的不是看不到编码,而是看到 UTF-8 却依然乱码——那说明文件实际是 GBK,而 Sublime 错误地用了 UTF-8 解码。这时候状态栏反而成了误导源,得靠肉眼判断汉字是否断裂,再手动切换。










