必须手动指定原始编码才能救回乱码文件:file → reopen with encoding → chinese (gbk),这是让sublime用gbk规则重读磁盘字节的唯一正确操作;fallback_encoding须设为"chinese (gbk)",default_encoding设为"utf-8",并禁用detect_encoding:true。

Sublime 中文乱码不是“修不好”,而是你还没告诉它“这个文件本来就是 GBK”——它不猜、不 fallback、不自动重试,错一次就满屏“锟斤拷”,必须手动指定原始编码才能救回来。
怎么让乱码文件立刻显示正常?
核心动作只有一步:File → Reopen with Encoding → Chinese (GBK)。这不是切换编码,是让 Sublime 丢掉当前错解的内存内容,重新用 GBK 规则读取磁盘原始字节。
- 右下角状态栏显示的
UTF-8或Western (ISO 8859-1)只是当前解码方式,不代表文件真实编码 - 如果点
Chinese (GBK)后仍乱码,换试Chinese (GB2312);千万别选Western (Windows 1252),它根本不含中文字符集 - 菜单里没出现
Chinese (GBK)?说明没装基础编码支持——去Preferences → Browse Packages…手动放一个GBK Support插件文件夹(别信 Package Control 搜到的过期镜像)
为什么改了 fallback_encoding 还是无效?
fallback_encoding 不是“默认编码”,它是“UTF-8 解码失败后兜底用的编码”,只在无 BOM + UTF-8 解码报错时触发。写成 "UTF-8" 直接被忽略,必须用 Sublime 内置名称。
- 正确配置是:
"fallback_encoding": "Chinese (GBK)"(注意括号和空格,大小写敏感) -
default_encoding才管新建文件,设为"UTF-8"即可 - 务必删掉配置里的
detect_encoding: true——它会让 Sublime 主动跳过 BOM 去试 GBK,把带 BOM 的 UTF-8 文件判成乱码
保存后别人打开还是乱码,问题出在哪?
你看到中文正常 ≠ 文件已转成 UTF-8。真正转码的动作只有一个:Save with Encoding → UTF-8(不是 UTF-8 with BOM)。
- 必须先通过
Reopen with Encoding确认中文显示无误,再执行这步,否则会把乱码字节二次编码成双乱码 - 加配置
"save_with_bom": false,否则 Python/Git 会报Non-UTF-8 code starting with '\xef' - ST4 用户慎用
ConvertToUTF8:它在内存中做编解码桥接,但容易和原生探测逻辑冲突,导致状态栏编码显示错乱
最麻烦的是混合编码项目——同一目录下既有 UTF-8 脚本又有 GBK 配置,全局设置根本不管用,得靠右下角手动切编码,或者用项目专属 .sublime-project 绑定规则。这点不提前设好,等 Git 提交失败才反应过来。











