稳定中文开发环境需同步配置语言包、字体链和终端编码:装官方语言包ms-ceintl.vscode-language-pack-zh-hans并重启;settings.json设"locale": "zh-cn";按系统配字体链如windows用"'microsoft yahei', 'consolas'...";wsl/系统启用utf-8区域设置,终端编码选utf-8,并设pythonioencoding=utf-8。

装完官方中文语言包并设 locale 为 zh-cn,只是中文环境的起点——真正能稳定写代码、跑终端、看报错的中文开发环境,得同时搞定语言层、字体层和终端编码三件事。
必须用 Microsoft 官方语言包,别碰任何第三方“汉化插件”
第三方插件常篡改 UI 节点或注入脚本,升级后易崩溃,且不参与 VS Code 的 i18n 生命周期管理。官方包 ID 是 MS-CEINTL.vscode-language-pack-zh-hans,安装后必须重启(不是“重新加载窗口”),否则 Configure Display Language 命令不会出现。
- 装错的典型表现:
Ctrl+Shift+P输Configure Display Language没响应,或输locale在设置里搜不到该配置项 - 离线安装命令:
code --install-extension MS-CEINTL.vscode-language-pack-zh-hans - Windows 用户注意:
%APPDATA%\Code\argv.json若有旧的"locale"字段,会覆盖settings.json,建议清空该文件中 locale 相关行
settings.json 里只写 "locale": "zh-cn",别加引号外的空格或逗号
VS Code 对 JSON 格式敏感,尤其 Windows 下用记事本保存容易带 BOM 或换行符错乱。务必用 VS Code 自己打开 settings.json(Ctrl+Shift+P → Preferences: Open User Settings (JSON))编辑。
- 值必须是小写
zh-cn,不是zh_CN、zh或Chinese - 已有
locale字段就直接改值,不要重复添加 key,否则 JSON 解析失败,整个 settings.json 会被忽略 - Mac/Linux 路径分别是:
$HOME/Library/Application Support/Code/User/settings.json和$HOME/.config/Code/User/settings.json
终端中文乱码?关键在 WSL/系统区域设置 + VS Code 终端编码
菜单变中文了,但 cd /mnt/c/项目 报错、git status 显示问号,问题不在 VS Code,而在底层编码链没对齐。
- Windows 系统设置:控制面板 → 区域 → 管理 → 更改系统区域设置 → 勾选“Beta 版:使用 Unicode UTF-8 提供全球语言支持”(不勾此选项,WSL 中文路径默认被识别为
GBK,与 VS Code 终端默认UTF-8冲突) - VS Code 终端编码:打开集成终端后,右下角点击
UTF-8,选Reopen with Encoding→UTF-8;再进设置搜terminal.integrated.defaultProfile,确保对应 shell 的编码未被插件强制覆盖 - WSL 内检查:
locale -a | grep zh_CN.utf8,若无输出需运行sudo locale-gen zh_CN.UTF-8
字体模糊、中英文混排错位?改 editor.fontFamily 不够,得配回退链
只设 "Consolas" 或 "Monaco",中文会 fallback 到系统默认无衬线体,导致字号不一、标点偏移、全角字符撑开行高。VS Code 的字体链必须显式声明中文字体优先级。
- 推荐配置(Windows):
"editor.fontFamily": "'Microsoft YaHei', 'Consolas', 'Courier New', monospace" - macOS 推荐:
"editor.fontFamily": "'PingFang SC', 'SF Mono', 'Menlo', monospace" - Linux 推荐:
"editor.fontFamily": "'Noto Sans CJK SC', 'DejaVu Sans Mono', monospace" - 切忌用
SimSun(宋体)——它不是等宽字体,会导致代码缩进错乱、行号列偏移
最常被忽略的一点:改完 locale 和字体后,如果终端里 python 打印中文还是方块,别去调 VS Code 设置——那是 Python 运行时的 sys.getdefaultencoding() 和终端 locale 不一致,得在 WSL 或 PowerShell 里执行 export PYTHONIOENCODING=utf-8 或 $env:PYTHONIOENCODING="utf-8"。











