vscode界面不显示中文,根本原因是未通过configure display language命令生成或正确读取用户级locale.json文件,该文件必须严格为{"locale":"zh-cn"}(utf-8无bom、小写、短横线),且1.70+版本已弃用settings.json中的locale字段;远程开发需单独配置远程机器上的locale.json,重启必须点restart而非reload window。

VSCode界面不显示中文?只认locale.json和Configure Display Language
装了中文语言包却还是英文界面,不是插件没起作用,而是 VS Code 根本没读到语言配置。它只从用户级 locale.json 读取 {"locale":"zh-cn"},且必须是 UTF-8 无 BOM 编码、严格小写、带短横线——zh_CN、zh-hans、ZH-CN 全部无效,也不报错。
执行 Configure Display Language 命令是唯一安全写入方式;手改 settings.json 的 "locale" 字段在 VS Code 1.70+ 已被彻底移除,写了也白写。
常见失败点:
- 文件放错路径:必须是用户级目录,Windows 是
%APPDATA%\Code\User\locale.json,不是工作区下的.vscode/locale.json - 远程开发(Remote-SSH / WSL)需单独配:远程机器上的
~/.vscode-server/data/Machine/xxx/locale.json,本地设置完全无效 - 重启方式错误:点
Developer: Reload Window不生效,必须点命令弹出的Change Language and Restart按钮,或手动杀光所有Code.exe/Electron进程再启动
输出框/终端中文乱码?别碰files.encoding,先查chcp和PYTHONIOENCODING
输出框(如 Python 控制台、调试控制台、集成终端)里显示 \u4f60\u597d 或方块,基本和编辑器编码无关,是 shell 层面的字符接收链断了。
Windows 用户最常踩的坑是:Python 按 UTF-8 输出,但 cmd 默认用 GBK(页码 936)接收,字节对不上就糊。
必须分层处理:
- 终端启动即切页:在用户级
settings.json加"terminal.integrated.profiles.windows": {"PowerShell": {"args": ["-NoExit", "-Command", "chcp 65001"]}},让每次新开终端自动执行chcp 65001 - Python 环境强制 UTF-8:设系统环境变量
PYTHONIOENCODING=utf-8(注意中间无空格),否则print("你好")在终端仍可能乱码 - Git 日志乱码?补全局配置:
git config --global i18n.logOutputEncoding utf-8,不然git log里中文变\u4f60\u597d
Reopen with Encoding 和 Save with Encoding 别混用
右下角点 UTF-8 → Reopen with Encoding 是诊断动作,不改文件一字节,只换解码方式;而 Save with Encoding 是覆写动作,一按就永久改文件内容。
误用 Save with Encoding 是导致后续问题的高发原因:
- 把 GBK 文件误存为
UTF-8 with BOM:Python 解析时报SyntaxError: Non-UTF-8 code starting with '\xd6' - 老项目 .bat 脚本存成 UTF-8:Windows 执行直接失败,因 cmd 不认 UTF-8 BOM
- Git diff 出现大量无意义变更:只是 BOM 字节增删,和业务逻辑无关
正确流程:先 Reopen with Encoding 试 GBK/GB2312/Big5,内容恢复即确认原始编码;确认后再用 Save with Encoding 转存为 utf8(注意全小写,不是 UTF-8)。
老项目混 GBK 文件,files.associations 比全局 files.encoding 安全十倍
给整个工作区硬设 "files.encoding": "utf8" 看似省事,实则会让 .reg、.ini、.bat 这类 Windows 原生 GBK 文件一打开就乱码,因为它们压根不是 UTF-8。
精准控制才是正解:在工作区根目录的 .vscode/settings.json 里用 files.associations 绑定后缀:
{
"files.associations": {
"*.txt": "gbk",
"*.log": "gbk",
"*.reg": "gbk",
"*.ini": "gbk"
}
}
这样 .py、.js 仍走默认 UTF-8,只有指定后缀才用 GBK 解码,互不干扰。语言专属规则更稳:用命令面板执行 Preferences: Configure Language Specific Settings → 选 python → 填 "files.encoding": "utf8",比全局设置优先级更高、更可靠。
真正容易被忽略的是:VS Code 的语言包不控制终端、调试器、第三方插件 UI 的语言;而乱码问题往往卡在「以为改了编辑器编码就能解决输出问题」这个误解上。每个环节的编码链都得单独对齐,少一环,中文就断在半路。











