Sublime Text 强制保存为 UTF-8 需先“Reopen with Encoding → UTF-8”再“Save with Encoding → UTF-8”,直接“Set Encoding”无效,因它不重解码已加载内容;推荐插件 ConvertToUTF8 实现自动检测与转换。

Sublime Text 保存文件时怎么强制用 UTF-8?
Sublime Text 默认不会自动把非 UTF-8 文件转成 UTF-8,它只是“按当前编码读取并显示”,保存时也默认沿用原编码。想真正转成 UTF-8,得手动触发“重新以 UTF-8 编码打开”再保存——否则改了内容再 Ctrl+S,还是存回原来的 GBK 或 ISO-8859-1。
实操建议:
- 先用
File → Reopen with Encoding → UTF-8,让 Sublime 按 UTF-8 解释当前内容(注意:这步不改变文件,只改变解读方式) - 确认文字显示正常(没乱码),再执行
File → Save with Encoding → UTF-8 - 如果原文件是
GBK且含中文,跳过第一步直接Save with Encoding,Sublime 会把当前内存里的字节按 UTF-8 写出,结果大概率是双乱码
为什么 “Set Encoding” 不起作用?
Set Encoding 只是告诉 Sublime “接下来输入的文字按这个编码存”,但它不会重解码已加载的内容。比如一个 GBK 文件被打开后,内存里存的是 GBK 解码出来的字符序列;此时点 Set Encoding → UTF-8,只是把“下次保存的编码”设为 UTF-8,而内存数据本身仍是 GBK 解码结果——相当于拿错钥匙开对锁,存出来还是错的。
常见错误现象:
大气文化传媒企业公司织梦网站源码模板采用织梦5.7 UTF8进行编码制作,软件包含完整栏目带后台数据,修复各类样式错位和错误。安装说明:解压上传到空间,运行域名/install进行安装,安装好后,到后台-系统-数据备份还原,还原好数据后到系统-系统基本参数把网站名称什么的改为自己的即可。
- 点了
Set Encoding → UTF-8,保存后用file -i查还是charset=gbk - 用 VS Code 或记事本打开新文件,中文又变问号或方块
- Git 提交后显示大量
diff,实际只是编码变了,内容没动
批量转 UTF-8 要不要装插件?
纯手工处理单个文件够用,但项目里一堆 .js、.html 是 GBK,一个个 reopen + save 太累。推荐装 ConvertToUTF8 插件,它会在后台自动做两件事:检测文件真实编码(用 chardet 类逻辑)、在保存前悄悄转成 UTF-8 字节流。
注意兼容性与风险:
- Sublime Text 4 用户需确认插件已更新支持 ST4,老版本
ConvertToUTF8在 ST4 下可能不触发转换 - 插件默认不修改文件头(如
锛夛紝HTML 閲岃繕寰楁墜鍔ㄦ敼charset鍊硷紝鍚﹀垯娴忚









