根本原因是find_in_files_charset配置缺失或错误,需在Preferences→Settings–User中添加"find_in_files_charset": "UTF-8"并重启Sublime Text;该参数独立控制搜索模块解码逻辑,与汉化、字体、文件编码等无关。

汉化不影响查找替换乱码,问题出在 find_in_files_charset 配置缺失或错误——它和界面语言、文件编码、字体设置全无关系,是搜索模块独立使用的解码参数。
为什么汉化后搜索框中文变方块?
Sublime 的搜索功能(Ctrl+Shift+F / Ctrl+H)不复用当前文件的解码逻辑,也不看右下角显示的编码,它只认 find_in_files_charset 这个配置项。默认为空,此时会按系统 ANSI 代码页(Windows 中文版为 CP936/GBK)去解你从 Chrome、VS Code 或微信复制来的 UTF-8 字节,首字节 \xe6 被当成非法 GBK 字符,直接显示为方块或问号。
- 改
default_encoding或fallback_encoding完全无效 - 装 ConvertToUTF8 插件对搜索框零影响
- 换中文字体、调 DPI、改区域设置都不解决这个问题
怎么配 find_in_files_charset 才生效?
必须手动编辑用户设置,且需重启 Sublime 才加载——热重载不触发该参数刷新。
- 打开
Preferences → Settings – User - 在 JSON 对象里加一行:
"find_in_files_charset": "UTF-8"(推荐,覆盖现代工具链) - 若主要从 Windows 记事本、老旧 ERP 系统复制文本,可改用
"find_in_files_charset": "GBK" - 注意:只接受标准编码名(
UTF-8、GBK、GB2312),大小写敏感,不支持Chinese (GBK)这类 UI 名称
验证是否修好 + 常见翻车点
配置保存后必须重启 Sublime,否则无效。验证方法很简单:
- 复制一段中文(比如“测试”),Ctrl+Shift+F 粘贴进搜索框,不再显示方块即成功
- 如果仍乱码,检查 JSON 是否有语法错误(逗号多写、引号用中文符号等)
- 别把
find_in_files_charset错写成find_files_charset或find_in_file_charset—— 拼错就等于没设 - ST4 用户注意:该配置项依然有效,未被移除,和
fallback_encoding失效无关
最常被忽略的是重启这一步——很多人改完配置就立刻试搜索,结果白忙活。搜索模块的编码器只在启动时读一次这个值,改了不重启,等于没改。











