应先“Reopen with Encoding → GBK”正确解码,再“Save with Encoding → UTF-8”;若跳过第一步直接保存,会将乱码内容误写为UTF-8,导致文件损坏。

Sublime Text 打开 GBK 文件显示乱码怎么办
直接原因是 Sublime 默认用 UTF-8 解码文件,而文件实际是 GBK 编码。它不会自动探测编码,也不会报错,只是把字节按 UTF-8 解释,结果就是中文变成方块、问号或错位符号。
关键不是“转换格式”,而是「用正确编码重新打开」+「保存为 UTF-8」两步。跳过第一步强行 Save with Encoding 容易写坏文件。
- 先点击右下角当前编码名(如
UTF-8或Western (Windows 1252))→ 选择Reopen with Encoding→GBK - 确认中文正常显示后,再点右下角 →
Save with Encoding→UTF-8 - 如果菜单里没有
GBK,需先安装插件:Package Control→Install Package→ 搜GBK Encoding Support
为什么不能直接 Save with Encoding 从 GBK 切到 UTF-8
Sublime 的 Save with Encoding 是“按当前内存内容,用指定编码写入磁盘”。如果文件原本是 GBK,但你没 Reopen with Encoding,编辑器内存里存的就是错误解码后的乱码字符串——此时再选 UTF-8 保存,等于把一堆乱码当 UTF-8 写进去,文件彻底损坏,不可逆。
- 真实流程:GBK 字节 → 正确解码为 Unicode 字符 → 再编码为 UTF-8 字节
- 错误流程:GBK 字节 → 错误当 UTF-8 解码 → 得到错误 Unicode → 再当 UTF-8 写出 → 二次污染
- 验证是否成功:关闭再重开,右下角显示
UTF-8,且中文不乱码
批量转换多个 GBK 文件的替代方案
Sublime 本身不支持批量重编码,硬用多标签逐个操作效率低、易漏。更可靠的方式是用命令行工具预处理:
- Windows 下可用
iconv(需安装 Git for Windows 或 Cygwin):iconv -f GBK -t UTF-8 input.txt -o output.txt -
macOS / Linux 直接有
iconv:find . -name "*.txt" -exec iconv -f GBK -t UTF-8 {} -o {}.utf8 \; - Python 脚本更可控(尤其含 BOM 或混合编码时):
open(file, 'r', encoding='gbk')读,open(file, 'w', encoding='utf-8-sig')写
注意:有些 GBK 文件带 BOM(0xFEFF),Sublime 会识别为 UTF-8 with BOM,导致误判。此时需先用十六进制编辑器确认开头字节,或用 file -i filename 查真实编码。










