Sublime Text 新建文件默认编码为 UTF-8(无 BOM),无法通过设置直接改为带 BOM;需用 "default_encoding_on_save": "UTF-8 with BOM" 控制保存编码,或通过快捷键绑定 set_encoding 命令实现新建后快速切换。

Sublime Text 新建文件默认编码是 UTF-8,但不带 BOM;如果你保存时没手动选编码,它会按当前文件原有编码或系统 locale 回退,实际行为常不符合预期。
怎么改 Sublime 的新建文件默认编码
Sublime 本身没有“新建文件编码”独立配置项,default_encoding 是个无效设置(官方已弃用)。真正起作用的是 default_encoding_on_save 和保存时的自动检测逻辑。
- 打开
Preferences → Settings(右侧用户设置面板) - 添加这行:
"default_encoding_on_save": "UTF-8" - 如果需要带 BOM(比如某些 Windows 工具强制要求),改用:
"default_encoding_on_save": "UTF-8 with BOM" - 注意:这个设置只影响「保存时」的编码选择,不是新建空白文件的初始编码显示——新文件初始显示为
UTF-8,但内容为空时不会写入 BOM,也无实际编码标记
为什么新建文件看起来像 GBK 或乱码
这不是新建文件本身的编码问题,而是 Sublime 在打开一个**未声明编码且含中文的文件**时,会按以下顺序猜测:
- 先查文件开头是否有 UTF-8 / UTF-16 / UTF-32 BOM
- 再根据内容字节特征匹配常见编码(如 GBK、BIG5、Shift-JIS)
- 最后 fallback 到系统 locale(Windows 上常是
GBK,macOS/Linux 是UTF-8)
所以你双击一个旧的 .txt 文件,看到乱码,大概率是它原本是 GBK 编码,而 Sublime 错误识别成了 UTF-8。此时应右下角点击编码名 → 选 Reopen with Encoding → GBK,确认无误后再用 Save with Encoding → UTF-8 转换。
本文档主要讲述的是Android的资源与国际化设置;资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML,PNG以及JPEG文件XML文件根据描述的不同有不同格式。这份文档描述可以支持什么样的文件,语法,以及各种格式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
如何让所有新建文件都强制 UTF-8(含 BOM)并自动保存
纯靠设置做不到“新建即带 BOM”,但可通过插件补足:
- 安装 Package Control 后,装
FileHeader或UnicodeEncoding插件 - 更轻量的做法:在
Preferences → Key Bindings中加一条快捷键绑定:
[
{
"keys": ["ctrl+alt+n"],
"command": "set_encoding",
"args": {"encoding": "UTF-8 with BOM"}
}
]
这样新建文件后按 ctrl+alt+n,就立刻切换到带 BOM 的 UTF-8 模式,再输入内容并保存,BOM 就会写入。
真正容易被忽略的是:Sublime 的编码识别是「基于文件内容」而非「基于设置」的。哪怕你把所有配置都设成 UTF-8,只要打开一个没 BOM 的 GBK 文件,它依然会显示乱码——这时候得人工干预,而不是调设置。









