sublime text 2026年主流版本需设"show_encoding": true才显示编码;旧字段show_encoding_on_status_bar无效;新文件生效,已打开文件须手动点击状态栏编码区触发重绘。

show_encoding 必须设为 true,不是 show_encoding_on_status_bar
Sublime Text 2026 年主流版本只认 show_encoding 这个字段,写成 show_encoding_on_status_bar 或 show_encoding_on_statusbar 都无效——那是旧版残留配置项,解析器直接忽略。打开 Preferences → Settings – User,在右侧 JSON 对象里加一行:"show_encoding": true,保存即可。注意:必须是标准 JSON 格式,逗号、引号、花括号一个都不能错。
开了 show_encoding 还不显示?先确认状态栏没被关掉
90% 的“不显示”问题,其实是因为状态栏本身被禁用了。检查用户设置里有没有 "status_bar_visible": false ——如果有,删掉或改成 true。再确认菜单 View → Show Status Bar 是勾选状态(快捷键通常是 Ctrl+K Ctrl+S 或 Cmd+K Cmd+S)。如果正处在 Distraction Free Mode(F11),状态栏也会强制隐藏,退出即可。
为什么新文件或已打开文件还是不显示编码名?
这个行为是 Sublime 的设计逻辑,不是 bug:
- 新建未保存的空文件(Untitled)不显示编码,因为没有磁盘路径、无 BOM、无字节内容,Sublime 无法推断,只显示 Plain Text
- 已打开的文件不会自动刷新状态栏,哪怕你刚改了设置。必须手动触发重绘:点击状态栏右下角原本该显示编码的位置(哪怕它是空白的)→ 弹出菜单选
Set Encoding→ 再点回当前编码(比如 UTF-8),它才会重载并显示 - 二进制文件(.png、.pdf)、插件面板(如 Find Results、Console)、预览页(Ctrl+P 打开的未激活视图)压根没有编码概念,状态栏留空是正常表现
想显示“编码: UTF-8 | 行数: 42”这种格式?原生做不到,得用插件
Sublime 原生的 show_encoding 只控制“是否显示”,不能加前缀、不能拼接字符串、不能读取行数变量。要实现带标签的复合状态栏,必须装插件。推荐 StatusMessage:
- 按
Ctrl+Shift+P输入Package Control: Install Package,搜StatusMessage安装 - 进入
Preferences → Package Settings → StatusMessage → Settings - 填入:
{"format":"编码: {encoding} | 换行: {line_ending} | 行数: {line_count}"}
真正容易被忽略的一点:状态栏上写的永远是 Sublime “此刻怎么读这个文件”,不是文件磁盘上的原始编码,也不是 BOM 声明的编码。验证真实编码,唯一可靠方式是 File → Reopen with Encoding 挨个试。











