侧边栏中文显示方框的根本原因是theme文件未正确配置sidebar_label类字体,需修改.sublime-theme文件指定中文字体并重启sublime;linux用户还需确保locale、系统字体及输入法前端完整安装。

侧边栏中文显示为方框,不是编码问题,是字体渲染或系统集成没到位。 Sublime 原生不控制文件名读取逻辑(那是操作系统和启动环境的事),但侧边栏文字渲染完全依赖 UI 字体配置 + 系统字体支持 + 输入法前端链路。乱码成方块,90% 情况下改 default_encoding 或 fallback_encoding 一点用都没有。
为什么改编码设置对侧边栏无效
侧边栏显示的是文件系统返回的路径字符串,不是文件内容。Sublime 读取这些字符串时走的是 OS API(Windows 的 WideCharToMultiByte / macOS/Linux 的 UTF-8 locale 路径接口),不经过任何「文件编码解码」流程。所以你在 Settings – User 里写 "default_encoding": "UTF-8",只影响新建文档存什么编码,跟侧边栏字体渲染毫无关系。
常见误操作包括:
- 反复修改
fallback_encoding,以为能“猜对”文件名编码 —— 实际上它只用于打开无 BOM 的文本文件 - 在 Settings – User 里加
"font_face": "Microsoft YaHei"却没确认该字体已安装到系统级字体目录 - Linux 下装了中文字体但没装
fcitx5-frontend-gtk3,导致 Sublime 启动时无法获取字体度量信息,直接 fallback 到无中文的默认字体
Windows 下侧边栏中文方块的硬解法
Windows 用户遇到侧边栏中文变方块,优先检查三件事:
- 右下角状态栏是否显示
UTF-8?如果不是,说明 Sublime 启动时没继承正确的 locale —— 这通常是因为你双击subl.exe直接启动,而非通过带-u参数的快捷方式。正确做法:新建快捷方式,目标栏写"C:\Program Files\Sublime Text\subl.exe" -u - Settings – User 中必须有
"font_face": "Noto Sans CJK SC"或"Microsoft YaHei",且不能只写一个名字,要加备选:"font_face": "Noto Sans CJK SC, Consolas, monospace" - 禁用硬件加速:
"hardware_acceleration": "none"。ST4 在某些显卡驱动下会跳过字体回退逻辑,强制渲染失败就打方块
Linux 下侧边栏中文失效的三道关
Linux 不是“装个字体就行”,必须打通从内核 → X/Wayland → GTK/Qt → Sublime 的完整链路:
- 确认 locale 是 UTF-8:
locale | grep UTF-8。若无输出,先运行export LANG=zh_CN.UTF-8再启动 Sublime;永久生效需在~/.bashrc或~/.zshrc中添加该行 - 字体必须系统级安装:
sudo apt install fonts-noto-cjk(Debian/Ubuntu)或sudo dnf install google-noto-sans-cjk-fonts(Fedora) - GTK/Qt 前端必须就位:
sudo apt install fcitx5-frontend-gtk3 fcitx5-frontend-qt5。缺任一者,Sublime 就拿不到中文字形轮廓,只能画方块
别碰 dpi_scale 来治方块
网上流传的加 "dpi_scale": 1.0 确实能让方块消失,但它只是把整个 UI 缩小了,侧边栏文字变小、图标糊掉、右键菜单错位——这是用全局降质换局部可用。真正修复必须直击字体链路,而不是绕开问题。如果你发现加了 dpi_scale 后菜单栏字太小、缩放失真,说明你还没过字体和 locale 这两关。
最常被忽略的一点:Sublime 的 theme 文件(如 sidebar-fix.sublime-theme)必须放在 Packages/User/ 下,且文件名以 .sublime-theme 结尾;改完后必须彻底退出再重开(Cmd/Ctrl+Q),仅用 Cmd/Ctrl+R 不会重载主题资源。











