VSCode中文显示黄色方框是Unicode高亮功能误判所致,需关闭editor.unicodeHighlight.nonBasicASCII等三项设置或配置allowedLocales白名单,与字体无关。

VSCode中文显示方框,99%不是字体问题,而是 editor.unicodeHighlight 功能误判汉字为“可疑字符”——关掉 editor.unicodeHighlight.nonBasicASCII 等三项设置,立刻恢复。
为什么注释/字符串里中文变黄色或灰色方框?
这是 VS Code 1.64+ 引入的 Unicode 高亮机制在起作用。它默认把所有非 ASCII 字符(包括中文、日文、emoji)标为“需高亮”的非常规字符,渲染时叠加 SVG 方框,本意是帮开发者识别零宽空格、BOM 等控制符,但对中文纯属误伤。
- 鼠标悬停在方框上,会显示类似
U+4F60(“你”的码点)的提示,这就是确认信号 - 只影响注释、字符串字面量、正则表达式等文本内容,不影响菜单、侧边栏或集成终端
- 和
editor.fontFamily完全无关:哪怕你设成"Microsoft YaHei",方框照常出现 - 不报错、不崩溃,是静默渲染层叠加,容易被当成字体缺失
怎么快速禁用方框高亮?
最直接有效的方式是关闭三项高亮开关,无需重启,保存即生效:
- 打开设置(
Ctrl+,),搜索editor.unicodeHighlight.invisibleCharacters→ 设为false - 同样搜
editor.unicodeHighlight.nonBasicASCII→ 设为false - 再搜
editor.unicodeHighlight.ambiguousCharacters→ 设为false
或者一步到位,在 settings.json 中添加:
{
"editor.unicodeHighlight.invisibleCharacters": false,
"editor.unicodeHighlight.nonBasicASCII": false,
"editor.unicodeHighlight.ambiguousCharacters": false
}
想保留控制符高亮,只放行中文怎么办?
用白名单机制,避免一刀切:
- 搜索
editor.unicodeHighlight.allowedLocales - 设为数组格式:
["zh-hans"](简体)或["zh-hant"](繁体) - 注意:必须是数组,写成
"zh-hans"(字符串)会失效 - 这样英文标点、控制符仍可被高亮,中文则完全透明,适合中英文混排项目
别碰字体配置,那是无效路径
很多人一看到方框就去改 editor.fontFamily、重装 SimSun、调系统 DPI,结果白忙活。因为:
- 方框是 SVG 图形层叠加,不是字体缺失导致的 “□” 占位符
- 即使你把
editor.fontFamily改成"SimSun, monospace",方框依然存在 - 真正起效的只有
editor.unicodeHighlight.*相关设置
复杂点在于:这个功能默认开启、无明显提示、且和所有其他编码/字体问题表现相似——最容易被当成别的问题反复折腾。











