应先用 file -i 或 Notepad++ 确认文件原始编码,若为 GBK 则通过 File → Reopen with Encoding → Chinese (GBK) 正确解码,再 Save with Encoding → UTF-8 转存;同时在用户设置中配置 "default_encoding": "UTF-8" 和 "fallback_encoding": "Chinese (GBK)",并禁用 ConvertToUTF8 插件。

Sublime Text 打开文件显示乱码,怎么强制用 UTF-8 读?
Sublime Text 默认不自动探测中文编码,遇到 GBK/GB2312 编码的文件会直接当 UTF-8 解码,结果就是满屏 或方块。这不是文件损坏,是解码方式错了。
真正有效的做法不是“设置默认编码”,而是让 Sublime 在打开时就按 UTF-8 解码——但前提是文件本身确实是 UTF-8 编码。如果原文件是 GBK,硬设 UTF-8 只会让乱码更顽固。
- 先用
file -i 文件名(Linux/macOS)或第三方工具(如 Notepad++ 的“编码检测”)确认原始编码 - 如果是 GBK,别强行转 UTF-8;先用 Sublime 正确解码:菜单栏 File → Reopen with Encoding → Chinese (GBK)
- 确认内容正常后,再手动转存为 UTF-8:菜单栏 File → Save with Encoding → UTF-8
- 之后新文件、新建标签页才会默认走 UTF-8 路径
如何让 Sublime 新建文件和保存都默认用 UTF-8?
Sublime 的默认编码行为由两个独立配置控制:新建文件的初始编码,以及保存时的落盘编码。它们都藏在 Preferences.sublime-settings 里,但不能只改一个。
- 必须同时设置
"default_encoding"和"fallback_encoding",否则打开无 BOM 的 GBK 文件仍可能失败 - 推荐配置项(贴到用户设置中):
{ "default_encoding": "UTF-8", "fallback_encoding": "Chinese (GBK)", "detect_indentation": false, "draw_white_space": "all" } -
"detect_indentation"设为false是为了防止它读取文件头时误判编码,干扰后续解码 - 改完不用重启,但已打开的乱码文件需手动
Reopen with Encoding刷新
为什么改了设置还是乱码?常见坑在哪?
多数人卡在这几步,不是设置没生效,而是被缓存、BOM、或插件劫持了编码逻辑。
- Sublime 会记住每个文件上次使用的编码,关闭再重开仍沿用——得手动
Reopen with Encoding覆盖 - 带 BOM 的 UTF-8 文件,Sublime 通常能自动识别;但无 BOM 的 UTF-8 + 中文,容易被当成 Latin-1,此时
"fallback_encoding"就关键 - 装了
ConvertToUTF8插件?它会在后台静默转码,和原生设置冲突,建议卸载,用原生流程 - Windows 上用记事本另存为 UTF-8,实际存的是 UTF-8 with BOM;Sublime 对 BOM 敏感,有时反而不如无 BOM 稳定
命令行打开 Sublime 时中文路径报错或乱码怎么办?
Windows 下用 subl 命令打开含中文路径的文件,cmd 默认是 GBK,但 Sublime 接收参数时按 UTF-8 解析,一来一回就错位。
- 临时解法:在 cmd 里先执行
chcp 65001(切到 UTF-8 代码页),再运行subl 中文路径.txt - 一劳永逸:用 PowerShell 替代 cmd,它默认 UTF-8,且
subl在 PowerShell 中兼容性更好 - Mac/Linux 用户基本无此问题,shell 默认 UTF-8,但要注意终端 locale 设置是否为
zh_CN.UTF-8 - 如果用 VS Code 或其他编辑器做跳板打开 Sublime,中间层可能二次转码,绕开它,直接命令行调用
Reopen with Encoding,最后才谈默认设置。










