Sublime Text 中文显示异常的三大主因是字体不支持中文字形、汉化插件被忽略、构建系统编码未设UTF-8;需分别检查font_face配置并重启、确认ignored_packages未屏蔽汉化包、修改.sublime-build文件指定encoding和-u参数。

右下角编码显示正常但汉字变方块,先查font_face是否支持中文
字体不包含中文字形是“显示乱码”最隐蔽的原因——文件编码完全正确、状态栏也写着UTF-8,可所有汉字都变成小方块或空格。这不是解码失败,是渲染失败。
Sublime Text 默认字体(如 Consolas、Monaco)通常不含中文字符集,强行渲染就 fallback 到系统默认无字形占位符。
- 打开
Preferences → Settings - User,检查是否有"font_face"字段;若没有,或值是英文名(如"font_face": "Fira Code"),大概率就是它 - Windows 用户可设为
"font_face": "Microsoft YaHei"或"SimSun";macOS 推荐"PingFang SC";Linux 常用"Noto Sans CJK SC" - 改完保存,重启 Sublime Text —— 不重启,字体不会重载
- 如果用了字体连字(ligature)插件,确认该字体实际安装到了系统里:在系统字体册/Fonts 文件夹中搜索名称,不能只靠 Sublime 配置名
中文能显示但标点错位、混用全角/半角,检查font_options和系统字体 fallback 行为
某些中文字体对 ASCII 标点渲染异常(比如括号撑开、冒号偏移),或在混合中英文时自动替换标点为全角,表面是排版问题,根源常是字体本身的 OpenType 特性或 Sublime 的 fallback 机制。
- 禁用
font_options中的"subpixel_antialias"或"no_round"等实验性选项,它们在中文字体上易引发渲染抖动 - 不要依赖系统自动 fallback(如设
"font_face": "Fira Code, SimSun"):Sublime 对多字体 fallback 支持弱,中间逗号可能被忽略,最终只用第一个字体渲染全部字符 - 验证方式:新建纯中文文件(如只写“你好,世界!”),关闭所有插件,用默认配色方案测试;若仍错位,换字体而非调参数
汉化插件装了但菜单/对话框仍是英文,确认插件未被ignored_packages屏蔽
Sublime Text 的汉化插件(如 ChineseLocalization)本质是资源包(.sublime-package),不是代码逻辑插件。它被禁用的表现很安静:没报错、没提示,只是界面照旧英文。
- 打开
Preferences → Settings - User,查找"ignored_packages"字段 - 若存在且值包含
"ChineseLocalization"或"Localization",直接删掉该项;若整个字段是["Vintage"]这类默认值,说明汉化包根本没生效 - 手动验证包是否存在:菜单
Preferences → Browse Packages…→ 进入上级目录Packages(不是Packages/User),看是否有ChineseLocalization文件夹 - 注意:ST4 用户需确认插件兼容性——很多老汉化包未适配 Sublime Text 4 的新资源加载路径,强行启用会静默失败
字体设置生效了但控制台(Console)还是乱码,这不是字体问题而是构建系统编码没对齐
控制台输出中文乱码和编辑区字体无关,它由 Sublime 启动子进程(如 Python)时 stdout 的解码方式决定。即使你把 font_face 设成微软雅黑,print("中文") 在底部面板仍可能显示问号。
- 必须修改构建系统(
.sublime-build文件),用"cmd"数组模式而非"shell_cmd",并显式指定"encoding": "utf-8" -
"cmd"中 Python 路径必须为绝对路径,例如"D:/Python39/python.exe",不能写"python" - 确保加了
-u参数:"cmd": ["D:/Python39/python.exe", "-u", "$file"],否则缓冲可能导致中文不输出 - 改完后务必手动切换构建系统:
Tools → Build System → [你的构建名],否则配置不加载
真正卡住人的地方,往往不是“找不到设置项”,而是字体配置改了不重启、构建系统改了不手动切换、汉化包放错目录却去调 default_encoding。这些动作之间没有因果链,每一步都得独立验证是否落地。


















