Sublime Text怎么设置默认编码_Sublime Text保存为UTF8教程【规范】
先说几个核心判断:Sublime Text 原生并不支持“新建即 UTF-8 且自动带 BOM”这种一键式的默认设置。真正起作用的配置其实就两个——default_encoding_on_sa ve 和 fallback_encoding。至于网上很多人改的 default_encoding,不仅无
先说几个核心判断:Sublime Text 原生并不支持“新建即 UTF-8 且自动带 BOM”这种一键式的默认设置。真正起作用的配置其实就两个——default_encoding_on_sa ve 和 fallback_encoding。至于网上很多人改的 default_encoding,不仅无效,还容易把问题带偏。

Sublime Text 原生不支持“新建即 UTF-8 且自动带 BOM”这种一键式默认,真正起作用的只有 default_encoding_on_sa ve 和 fallback_encoding;改 default_encoding 不仅无效,还可能干扰判断。
为什么改了 default_encoding 还是乱码?
原因很简单:default_encoding 在 Sublime 官方文档里已经被明确标记为“已弃用”。它只影响新建文件时右下角显示的编码标识,以及“另存为”对话框的初始选项——但完全不控制实际的保存行为或打开逻辑。也就是说,你改它,基本等于改了个寂寞。
具体来说:
- 你看到状态栏写着“UTF-8”,不代表磁盘上那个文件就是 UTF-8 编码的——空文件保存后根本没有写入任何字节,光靠显示没意义
- 点一下右下角的编码名(比如点“UTF-8”),只是让 Sublime 采用新规则重新解析当前内存里的内容,不会改磁盘上的字节,也不会做转码
- 网上流传的
"convert_to_utf8_on_sa ve": true,其实是 ConvertToUTF8 插件的私有字段,Sublime 原生根本不认,加了也白加
怎么让 Ctrl+S 强制保存为 UTF-8(无 BOM)?
这个问题的答案很明确:必须设置 default_encoding_on_sa ve。这是唯一决定“按 Ctrl+S 后以什么编码写入磁盘”的配置项。没有第二个选择。
具体操作走一遍:
- 在
Preferences → Settings – User右侧添加:"default_encoding_on_sa ve": "UTF-8" - 如果有些 Windows 工具强制要求带 BOM,那就写成:
"default_encoding_on_sa ve": "UTF-8 with BOM"——注意字符串必须一字不差,"UTF8-BOM"或"UTF-8+BOM"这类写法都会静默失效,毫无提示 - 同时,不要画蛇添足去设
sa ve_encoding或convert_to_utf8_on_sa ve,这些都不是原生字段,Sublime 会直接忽略
为什么旧中文文件一打开就全是方块?
这个问题和“新建”无关,而是打开时解码失败导致的。大多数 Windows 下的 .txt 文件是 GBK 编码且没有 BOM,但 Sublime 默认用 Western (Windows 1252) 去解——两个字节当一个字符读,内容必然崩坏。关键就在 fallback_encoding 上。
分两种情况来看:
- 设
"fallback_encoding": "GBK":适合本地开发老项目,能直接正确打开记事本保存的中文文件 - 设
"fallback_encoding": "UTF-8":适合纯跨平台协作场景,但遇到 GBK 文件时仍需手动操作——File → Reopen with Encoding → Chinese (GBK)后再Sa ve with Encoding → UTF-8 - 有一点特别容易忽略:别以为设了
fallback就能自动转码。它只管“怎么读”,不管“怎么存”。只有读对了,才可能安全地存成 UTF-8。这步做对了,后续才稳
最后再强调一点:default_encoding_on_sa ve 和 fallback_encoding 必须配对使用,而且不能和已经弃用的 default_encoding 同时存在。不然优先级会混乱,实际生效的可能是你完全没意识到的那个配置——到时候排查起来,就真得头疼了。


































