vscode中文显示必须严格配置"zh-cn":locale.json文件路径、名称、内容(仅{"locale":"zh-cn"})、utf-8无bom编码四者缺一不可;settings.json中"locale":"zh-cn"在1.70+版本已弃用,仅locale.json生效。

locale 字段必须写成 "zh-cn" 才生效
VS Code 的中文显示开关不是“装了语言包就自动开”,而是靠 locale 字段触发资源加载。这个字段值必须严格符合 BCP 47 标准:小写字母、短横线分隔、无空格或下划线。写成 "zh_CN"、"zh-hans"、"Chinese" 或 "zh" 都不会激活中文界面,也不会报错——它就默默当没这回事,继续英文。
生效位置优先级从高到低是:locale.json 文件 > settings.json 中的 "locale" 字段 > 命令行参数 --locale=zh-cn。日常使用推荐直接改 settings.json,路径是:%APPDATA%\Code\User\settings.json(Windows)、$HOME/Library/Application Support/Code/User/settings.json(macOS)、$HOME/.config/Code/User/settings.json(Linux)。
- 改完后必须完全退出 VS Code 进程(Windows 查任务管理器杀光所有
Code.exe;macOS 查 Activity Monitor 杀Electron)再重开,仅“重新加载窗口”不生效 - 如果已误写过错误值,
settings.json和locale.json可能同时存在冲突配置,建议删掉locale.json,只留settings.json里的一行"locale": "zh-cn"
editor.fontFamily 字体顺序决定中文是否发虚或乱码
菜单变中文了,但注释、文件名、终端输出还是糊的?大概率是 editor.fontFamily 顺序错了。VS Code 按从左到右顺序匹配字符:西文字体必须在前,中文字体兜底在后。如果把 "Microsoft YaHei" 放最前面,所有英文字符都会强制走微软雅黑,等宽失效、连字丢失、括号变细,甚至 {} 显示异常。
正确写法示例:"Fira Code", "JetBrains Mono", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC"。其中前两个是西文等宽字体,后三个是中文字体兜底,覆盖 Windows/macOS/Linux 常见环境。
- macOS 用户注意:
PingFang SC渲染中文标点比Heiti SC更稳;SF Mono必须放在中文字体前,否则符号会变细 - 改完字体后同样要彻底退出 VS Code 进程,否则新字体链不加载
- 终端(Integrated Terminal)的字体由
terminal.integrated.fontFamily单独控制,需同步设置,否则 shell 输出仍可能乱码
Windows 下不勾选 UTF-8 系统选项,WSL 路径就会乱码
即使 VS Code 界面和编辑器都显示正常中文,cd /mnt/c/中文目录 在集成终端里仍报错?这是 Windows 系统区域设置没对齐导致的底层编码断裂。VS Code 启动时读取系统区域设置来解析路径,如果没启用“Beta 版:使用 Unicode UTF-8 提供全球语言支持”,WSL 就会把中文路径识别为乱码,哪怕编辑器 UI 是中文也没用。
操作路径:Windows 控制面板 → 区域 → 管理 → 更改系统区域设置 → 勾选该选项 → 重启电脑。这步不是可选项,是 WSL + VS Code 中文路径可用的前提。
- 不勾选该选项,
files.encoding设成"gbk"也救不回路径问题 - VS Code 设置里的
"files.autoGuessEncoding": true对路径无效,它只影响文件内容读取 - 此设置影响所有基于 Windows API 的程序,不只是 VS Code
插件语言跟随 locale,但部分插件需单独配置
绝大多数官方及主流插件(如 Python、C/C++、Prettier)的语言会自动继承 VS Code 的 locale 设置,菜单、提示、设置项都会变成中文。但少数插件(比如某些 LSP 客户端或旧版调试器)会读取自己的语言配置,或依赖系统 locale,导致出现“主界面中文,插件弹窗英文”的割裂感。
遇到这种情况,先确认插件是否支持本地化:打开插件主页看描述里有没有 “Localization support” 或 “i18n”。支持的插件通常会在其设置项里暴露 xxx.language 字段,例如 python.defaultInterpreterPath 不影响语言,但 python.languageServer 相关插件可能有 python.languageServerLocale。
- 不要装名字含“汉化”“Pro”“Ultimate”的第三方“中文插件”,它们不更新、不兼容,还可能污染命令面板
- 唯一应安装的扩展是:
Chinese (Simplified) Language Pack for Visual Studio Code,发布者必须是 Microsoft,ID 是ms-ceintl.vscode-language-pack-zh-hans - 插件语言不生效时,优先检查
locale.json是否被多个路径重复写入,造成覆盖冲突
locale 写对了,字体顺序调好了,系统 UTF-8 没开——终端一 cd 就崩,这种错位很难一眼定位。











