跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Sublime运行结果中文显示方框_Sublime运行界面字符编码的修复流程【攻略】

Sublime Build Output 中文显示方框是因Python输出编码与Sublime解码不匹配;需新建.sublime-build文件,设置"env": {"PYTHONIOENCODING": "utf-8"}和"encoding": "utf-8"并启用该构建系统。 Sublime 运行结果(即 Build Output 面板)中中文显示方框,根本不是文件 编码 或侧边栏字体问题,而是 Python 进程输出字节流与 Sublime 控制台解码逻辑不匹配——它默认把 stdout 当作 UTF-8 解析,但 Windows 上 Python 2.7/3.x 默认用
gbk
输出,Linux/macOS 则依赖 locale,结果就是
\u4f60\u597d
被当乱码渲染成 □。 Build Output 中文变方框:Python 输出编码没对齐 你写
print("你好")
,终端能正常显示,但 Sublime 的 Build Output 里是方框,说明问题出在 Sublime 怎么“读” Python 打印出来的字节。它不关心你的源文件是不是 UTF-8,只看你运行时 stdout 流送过来的是什么字节、它用什么编码去 decode。 Windows 下 Python 默认
sys.stdout.encoding
是
cp936
(即 GBK),而 Sublime Build 系统硬性按 UTF-8 解码 → 字节错位 → 方框 macOS/Linux 若
LANG=en_US.UTF-8
,通常没问题;但若设成
zh_CN.GB18030
,同样会触发方框 这个现象和
default_encoding
、
fallback_encoding
完全无关——那些只管“打开文件”,不管“运行输出” 修复 Build Output 中文:改 Build System 而非编辑器设置 必须让 Python 进程输出 UTF-8 字节,并确保 Sublime 按 UTF-8 解码。不能靠改
Preferences.sublime-settings
,得动
.sublime-build
文件。 React Native For Android 源码编译 中文WORD版 本文档主要讲述的是React Native For Android 源码编译;希望对大家会有帮助;感兴趣的朋友可以过来看看 下载 菜单
Tools → Build System → New Build System…
,粘贴以下内容(Windows 示例):
{ "cmd": ["python", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python", "env": {"PYTHONIOENCODING": "utf-8"}, "encoding": "utf-8" }
"env": {"PYTHONIOENCODING": "utf-8"}
强制 Python 用 UTF-8 编码 stdout/stderr
"encoding": "utf-8"
告诉 Sublime Build Output 面板用 UTF-8 解码收到的字节流
-u
参数禁用输出缓冲,避免中文卡住不刷出来 Linux/macOS 用户若 locale 不是 UTF-8,还需加
"env": {"LANG": "en_US.UTF-8", "PYTHONIOENCODING": "utf-8"}
验证是否生效 & 常见失效点 保存为
Python-UTF8.sublime-build
,再用
Tools → Build System
选它,然后运行含中文
print
的脚本。若仍显示方框,重点查这三处: 确认 Build System 真被启用:右下角状态栏应显示
Python-UTF8
,不是
Python
或
Automatic
检查 Python 版本:Python 2.7 对
PYTHONIOENCODING
支持不稳定,建议升到 3.6+;若必须用 2.7,改用
cmd
中插入
chcp 65001 &&
(Windows)强制代码页 别漏掉
"encoding": "utf-8"
—— 很多人只加 env,忘了告诉 Sublime “怎么读”,结果还是方框 插件如
Codecs37
或
ConvertToUTF8
对 Build Output 完全无效,它们只处理文件打开/保存流程 最易忽略的是 Build System 没真正激活,以及
"encoding"
字段漏写——这两个点一错,前面所有配置都白搭。

相关文章