Sublime Text默认保留BOM,可通过状态栏查看编码,选择“File → Save with Encoding → UTF-8”移除BOM,或使用脚本批量处理,结合插件与规范避免生成带BOM文件。

Sublime Text 在处理带有 BOM 的 UTF-8 文件时,默认会保留 BOM 头。虽然 BOM(Byte Order Mark)在某些系统中有助于识别编码,但在 Web 开发或脚本执行中,它可能导致问题,比如输出意外字符、PHP 页面空白、JSON 解析失败等。
如何识别文件是否包含 BOM
打开文件后,在 Sublime Text 窗口底部状态栏中查看编码信息:
- 如果显示 UTF-8 with BOM,说明文件带有 BOM 头。
- 如果显示 UTF-8,则不带 BOM。
移除 BOM 的方法
Sublime Text 原生支持将文件从“UTF-8 with BOM”转换为普通 UTF-8:
- 打开文件。
- 点击菜单栏的 File → Save with Encoding → UTF-8。
- 保存后,BOM 头会被自动移除,编码变为标准 UTF-8。
注意:不要选择 “UTF-8 with BOM” 选项,那是添加 BOM 的操作。
批量处理多个文件
如果需要批量清除多个文件的 BOM,可借助外部工具或脚本:
- 使用 Notepad++:支持多文件打开并统一另存为 UTF-8(无 BOM)。
-
使用 Python 脚本:
import os
def remove_bom(file_path): with open(file_path, 'rb') as f: content = f.read() if content.startswith(b'\xef\xbb\xbf'): with open(file_path, 'wb') as f: f.write(content[3:])
批量处理目录下所有 .txt 文件为例
for root, _, files in os.walk('your_directory'): for file in files: if file.endswith('.txt'): remove_bom(os.path.join(root, file))
-
使用命令行工具如
sed(Linux/macOS):sed -i '1s/^\xEF\xBB\xBF//' filename
设置默认保存为无 BOM 的 UTF-8
Sublime Text 本身无法通过设置强制默认去除 BOM,但可通过以下方式规避:
- 养成保存时手动选择“UTF-8”的习惯。
- 安装插件如 ConvertToUTF8(需配合 Package Control 安装),部分版本支持自动处理编码和 BOM。
- 使用项目专用的编辑器配置或与团队统一规范,避免生成带 BOM 的文件。
基本上就这些。关键在于识别当前编码,并通过“另存为 UTF-8”主动移除 BOM。虽然 Sublime 没有直接“移除 BOM”按钮,但操作并不复杂,只是容易被忽略。










