根源在windows系统未启用“beta: 使用 unicode utf-8”,需在区域设置中勾选并重启电脑;vscode终端仅转发系统shell输出,改编辑器设置无效。

VSCode 控制台中文显示异常,大概率不是 VSCode 本身的问题,而是 Windows 系统区域设置没开 UTF-8 支持 —— 这个开关不开,cmd、PowerShell、WSL 终端全都会丢中文。
为什么改了 VSCode 设置还是乱码?
VSCode 集成终端(Integrated Terminal)本质是调用系统 shell,它不自己渲染字符,只转发输入输出。所以:
• files.encoding 设成 utf8 只管文件读写
• locale.json 设成 zh-cn 只管菜单和 UI 翻译
• 终端里 console.log('你好') 或 git status 输出中文乱码,根源在系统级编码策略
Windows 必须开启「Beta: 使用 Unicode UTF-8」
这是唯一能全局修复 cmd/powershell/WSL 终端中文输出的设置,其他操作都是治标:
- 打开「控制面板 → 时钟和区域 → 区域 → 管理 → 更改系统区域设置」
- 勾选 Beta: 使用 Unicode UTF-8 提供全球语言支持
- 点击「确定」→ 弹出提示后重启电脑(仅重启 VSCode 不生效)
- 验证:打开新 cmd 窗口,执行
chcp,应返回活动代码页: 65001
VSCode 终端配置要配合系统设置
即使系统开了 UTF-8,VSCode 终端仍可能因启动参数被覆盖而失效:
- 检查设置中
terminal.integrated.env.windows是否误加了CHCP 437类指令 - 若使用 PowerShell,确认
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'没被强制设为ascii - WSL 用户额外注意:
locale.json要在远程环境里也配一份(路径:~/.vscode-server/data/Machine/locale.json),否则本地设了中文,git命令输出仍是英文
别信“改 fontFamily 就能解决”
把 terminal.integrated.fontFamily 改成 "Consolas, 'Microsoft YaHei'" 看起来字显示了,但只是字体 fallback 侥幸撑住了——实际传输的字节仍是乱码。一旦遇到 npm run build 输出带中文路径或错误信息,照样方块堆叠。真正可靠的只有系统层 UTF-8 开关 + 终端环境变量对齐。











