vscode中文显示正常需同时满足字体链兜底至中文字体且locale严格设为"zh-cn";editor.fontfamily须西文优先、中文兜底(如"fira code","microsoft yahei"),错误顺序或locale格式不符(如zh_cn)将导致注释、终端、文件名乱码或发虚。

VSCode 显示中文字符,本质不是“能不能”,而是“字体链是否兜底到中文字体”+“locale 是否生效”。光装语言包或改 locale,中文注释、文件名、终端输出仍可能乱码或发虚。
editor.fontFamily 字体顺序写错,中文一定糊
VS Code 的 editor.fontFamily 是按从左到右顺序匹配字符的。如果西文字体(如 Fira Code)放在中文字体(如 Microsoft YaHei)前面,且该西文字体不支持中文字符集,就会 fallback 到系统默认字体——往往就是空白、方块或极细的宋体。
- ✅ 正确写法(西文优先,中文兜底):
"Fira Code", "JetBrains Mono", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC" - ❌ 错误写法(中文字体前置):
"Microsoft YaHei", "Fira Code"→ 所有字符强制走微软雅黑,英文等宽失效、连字丢失 - macOS 用户注意:
PingFang SC渲染中文标点比Heiti SC更稳;SF Mono必须放在中文字体前,否则{}等符号变细 - 改完必须完全退出 VS Code 进程(Windows 杀
Code.exe,macOS 用 Activity Monitor 查Electron),仅关闭窗口不生效
locale 设置为 zh-cn 才真正触发中文资源加载
语言包只是资源容器,locale 才是开关。写错一个字符(比如 zh_CN、zh-hans、Chinese)就等于没开——菜单、设置页、命令面板全英文,且不会报错。
- 必须严格写成:
"locale": "zh-cn"(小写、连字符、BCP 47 标准) - 修改位置优先级:命令面板
Configure Display Language>settings.json手动加"locale": "zh-cn"> 删除locale.json文件强制回退 - 安装语言包后不要只点 “Reload” —— 它只重载插件逻辑,不刷新界面语言;必须点提示里的 Restart 或手动杀进程重启
- 若搜索不到
Chinese (Simplified) Language Pack for Visual Studio Code,说明 VS Code 版本
终端/调试器里中文仍是英文?它们不走 editor.fontFamily
集成终端(Terminal)和调试控制台(Debug Console)使用的是独立字体配置项,不受 editor.fontFamily 影响。即使编辑区中文正常,终端也可能显示方块或英文路径。
- 终端字体单独配:
terminal.integrated.fontFamily,值同editor.fontFamily(推荐一致) - 调试控制台字体由
debug.console.fontFamily控制,也建议设为相同值 - Linux 用户若终端中文乱码,检查系统是否已安装中文字体(如
fonts-wqy-zenhei),再确认 VS Code 终端编码为 UTF-8(terminal.integrated.env.linux中无需额外设,但确保 shell 启动时LANG=zh_CN.UTF-8) - Windows 用户注意:PowerShell 默认用
Consolas,不支持中文,必须显式覆盖terminal.integrated.fontFamily
最常被忽略的其实是字体缓存和进程残留——改完配置不杀干净进程,VS Code 会继续用旧字体渲染引擎;终端中文异常时,90% 情况下不是缺包,而是 terminal.integrated.fontFamily 没配或配错顺序。











