Sublime状态栏不显示编码时,新建未保存文件默认为Plain Text且不显示编码;保存后输入非ASCII字符或手动设置编码即可显示。

Sublime 状态栏不显示编码时怎么确认当前文件编码
Sublime 默认会把当前文件编码显示在右下角状态栏,但如果没看到,大概率是文件刚新建、未保存,或编码被自动转换过。此时 UTF-8 是默认隐式编码,但不会主动显示——只有显式声明或检测到 BOM/非 ASCII 字符后才触发显示。
实操建议:
- 先保存文件(
Ctrl+S),再输入一个中文或特殊符号(如“é”),状态栏通常立刻刷新出UTF-8 - 若仍不显示,用
Ctrl+Shift+P调出命令面板,输入Set Encoding,手动选一次UTF-8或GBK,状态栏会立即更新 - 注意:新建未保存的空文件,状态栏只显示
Plain Text,不显示编码——这是正常行为,不是 bug
如何强制让 Sublime 在状态栏始终显示编码(含未保存文件)
Sublime 本身不提供“始终显示编码”的原生开关,但可通过修改配置绕过限制。核心思路是启用 show_encoding 状态栏字段,并确保它不被其他插件或主题覆盖。
操作步骤:
- 打开
Preferences → Settings – User,在右侧 JSON 中添加:"show_encoding": true
- 重启 Sublime(仅修改配置不生效,必须重启)
- 如果用了
Origami、BracketHighlighter等重度状态栏插件,检查它们是否禁用了编码字段——可临时禁用这些插件验证 - 部分 UI 主题(如
Material Theme)会隐藏编码字段,改用Default主题测试是否恢复显示
状态栏显示 UTF-8 with BOM 和 UTF-8 的区别在哪
这不是 Sublime 的 bug,而是真实编码差异。BOM(Byte Order Mark)是开头三个字节 EF BB BF,Windows 记事本常用,但多数现代编辑器和 Web 环境不需要它,甚至会导致 PHP 输出异常或 JSON 解析失败。
关键判断点:
- 用十六进制编辑器(如 HxD)打开文件,看开头是否为
EF BB BF;是 → 就是UTF-8 with BOM - Sublime 里按
Ctrl+Shift+P→Convert to UTF-8,会移除 BOM 并改为显示UTF-8 - 保存时选
File → Save with Encoding → UTF-8(不含 “with BOM” 后缀)才能彻底避免 - CI/CD 或 Python 脚本读取该文件时,BOM 可能被当作文本内容,引发
UnicodeDecodeError或解析错位
为什么切换编码后状态栏没变,但文件内容乱码了
状态栏显示的是 Sublime “当前认为的编码”,不是文件真实字节编码。乱码说明 Sublime 用错了解码方式——比如文件实际是 GBK,你却设成了 UTF-8,它强行按 UTF-8 解析 GBK 字节,自然成乱码。
排查顺序:
- 先别改编码,用
Ctrl+Shift+P→Revert File恢复原始读取状态 - 再试
Set Encoding → GBK(或ISO 8859-1、UTF-16 LE),逐个试到文字可读为止 - 确认后,立刻执行
Convert to Encoding → [正确编码],这步才是真正重编码写入磁盘 - 注意:
Set Encoding只改解读方式,Convert to Encoding才改文件内容——很多人卡在这一步
Convert 可能把原本正确的文件毁掉。










