Sublime Text控制台中文乱码的根本原因是构建系统未正确配置编码,必须使用"cmd"数组模式、指定Python绝对路径、添加"-u"参数、同级设置"encoding":"utf-8",且修改后需手动切换构建系统生效。

Sublime Text 控制台输出中文乱码,和汉化无关
汉化只改界面语言,不影响构建系统对 stdout 字节流的解码逻辑。你看到的“涓枃”“烫烫烫”或方块,是 Sublime 用 GBK(Windows 默认)去 decode Python 输出的 UTF-8 字节导致的,根源在 .sublime-build 配置缺失或错配。
必须用 cmd 数组模式,不能用 shell_cmd
shell_cmd 写法(如 "shell_cmd": "python -u $file")会完全忽略 "encoding": "utf-8" 字段,Sublime 不会介入子进程 I/O 编码协商。
-
cmd是唯一能触发encoding解码的模式,它让 Sublime 主动按指定编码解析子进程 stdout 字节流 - Windows 上必须写 Python 绝对路径,例如
"D:/Python39/python.exe",避免环境变量歧义 -
-u参数不可省:禁用 stdout 缓冲,否则中文可能卡住不输出 -
"encoding": "utf-8"必须和"cmd"同级,不能嵌在cmd数组里
改完配置后必须手动切换构建系统
保存 Python3.sublime-build 文件后,Sublime 不会自动应用新配置。不执行这一步,就等于没配。
- 菜单操作:Tools → Build System → 选中你刚命名的构建系统(如
Python3) - 右下角状态栏应显示该名称,否则仍在走旧配置(通常是默认的
Python) - 如果脚本含中文路径或空格,
cmd数组中每个参数单独成字符串,避免 shell 解析错误
文件本身也得是 UTF-8 无 BOM
即使构建系统全配对,源文件若存为 GBK 或 UTF-8 with BOM,Python 解释器读取时仍可能出错,尤其 Windows 下 # -*- coding: utf-8 -*- 对带 BOM 的文件无效。
- 用 Notepad++ 或 VS Code 确认右下角显示 “UTF-8” 而非 “UTF-8-BOM”
- Notepad++ 中:编码 → 转为 UTF-8 无签名
- Sublime 用户设置中加
"save_with_bom": false,防止后续保存又加 BOM - Git/Python 报
Non-UTF-8 code starting with '\xef'就是 BOM 残留的明确信号
真正卡住人的地方,是每个 Python 安装路径都得手写进 cmd,且每换一台机器、每个新版本都要重配;而手动切换构建系统这步,90% 的人会在保存后直接 Ctrl+B,根本没看右下角——结果全程都在用旧配置试错。











