Sublime Text状态栏默认不显示编码格式,需手动启用show_encoding设置:执行view.settings().set("show_encoding", True)或在用户配置中添加"show_encoding": true;仅当文件含BOM或手动切换编码时才显示,纯UTF-8无BOM文件即使开启也不显示。

Sublime Text 状态栏不显示编码格式,怎么打开
默认安装的 Sublime Text 不会主动在状态栏显示当前文件编码,必须手动启用「显示编码」功能。这不是 bug,是默认关闭的视觉选项。
- 点击菜单栏 View → Show Console(或快捷键
Ctrl+`),输入:sublime.status_message("test")确认控制台能正常响应,排除环境异常 - 再执行:
view.settings().set("show_encoding", True)——这是关键一步,show_encoding是控制状态栏是否显示编码的开关 - 如果想永久生效,打开 Preferences → Settings – User,添加:
"show_encoding": true
- 注意:该设置只对当前视图生效;如果文件被重新加载(比如 Git 切分支后刷新),可能重置,所以建议写进用户配置
为什么改了 show_encoding 还是看不到编码名
常见原因是文件本身没有明确声明编码,Sublime 默认用 UTF-8 打开但不标注——它只在检测到非默认编码、或手动指定了编码时才显示。
- 打开一个带 BOM 的
UTF-16 LE文件,状态栏立刻显示UTF-16 LE - 用
File → Reopen with Encoding → Western (Windows 1252)强制切换后,状态栏才会更新为Western (Windows 1252) - 纯 ASCII 内容 + 无 BOM 的 UTF-8 文件,Sublime 通常不显示编码(认为无需提示),哪怕
show_encoding已开启 - 插件如
ConvertToUTF8或EncodingHelper可能覆盖原生行为,冲突时优先检查已启用插件
如何快速确认当前文件实际使用的编码
状态栏显示的只是 Sublime “认为”的编码,不一定等于文件真实字节编码,尤其遇到乱码时需交叉验证。
- 右键状态栏上的编码名(如
UTF-8),可选择 Reopen with Encoding 或 Save with Encoding,这是最直接的干预入口 - 用命令面板(
Ctrl+Shift+P)输入Set Encoding:,列出所有候选编码,选一个预览效果——不保存,仅临时解码 - 终端里用
file -i filename(Linux/macOS)或chcp+certutil -hashfile组合粗略判断(Windows),但注意:这些工具看的是字节特征,和 Sublime 的启发式识别逻辑不同 - 真正可靠的判断方式:用十六进制编辑器(如
xxd)看前几个字节是否有 BOM(EF BB BF= UTF-8-BOM,FF FE= UTF-16 LE)
插件干扰导致编码提示失效的典型表现
某些编码相关插件会劫持状态栏区域或覆盖 show_encoding 行为,导致明明开了设置却没反应。
-
Codec插件会替换整个状态栏右侧区域,把编码信息藏在自定义 tooltip 里,此时状态栏只显示图标 -
UTF8-Rewrite在保存时强制转码,可能让状态栏短暂闪烁后恢复默认,容易误判为“没生效” - 禁用插件测试:菜单 Preferences → Package Control → Disable Package,逐个关掉
Encoding、Unicode、Codec类插件,再试show_encoding - 如果依赖插件功能,可在插件配置中找类似
"show_in_status_bar"或"override_encoding_display"的开关项关掉

















