vs code macos 终端中文乱码主因是 locale 未正确加载,需四步解决:一查 locale 输出确认 lang/lc_all/lc_ctype 含 utf-8;二在 settings.json 中配置 terminal.integrated.env.osx 注入 locale;三将 export lang=zh_cn.utf-8 移至 ~/.zprofile 确保 login shell 加载;四设置中英双语等宽字体如 "sfmono-regular", "pingfang sc", "monaco"。
macos 上 vs code 内置终端中文输入乱码,核心问题不是“打不出中文”,而是终端环境没加载正确的 locale,导致 shell 无法正确解析和回显中文输入。常见表现是:输入中文后显示为方块、问号、空格,或按回车后命令执行失败(如 cd /用户/文档 报错)。下面分四步直击关键环节。
第一步:确认终端当前 locale 是否生效
在 VS Code 终端中运行:
locale
重点看这三行输出:
-
LANG(如
LANG=zh_CN.UTF-8或LANG=en_US.UTF-8) - LC_ALL(应与 LANG 一致,或为空)
-
LC_CTYPE(必须含
UTF-8,否则中文输入/回显会断)
如果任意一项是 C、POSIX 或完全缺失(比如只显示 LANG=),说明 shell 启动时没读取你的配置文件,VS Code 默认不 source ~/.zshrc 或 ~/.bash_profile。
第二步:补全 locale 环境变量透传
VS Code 不自动加载 shell 配置,需手动把 locale 注入终端环境。打开 VS Code 的 settings.json(Cmd+Shift+P → “Preferences: Open Settings (JSON)”),添加:
"terminal.integrated.env.osx": {<br> "LANG": "zh_CN.UTF-8",<br> "LC_ALL": "zh_CN.UTF-8"<br>}
注意:
• zh_CN.UTF-8 是标准写法,不要写成 zh_CN.utf8 或 Chinese.UTF-8;
• 如果你系统语言是英文但需支持中文输入,可用 en_US.UTF-8,效果一样;
• 修改后必须关闭当前终端 tab,再新建一个才能生效。
第三步:检查 shell 配置是否被跳过
VS Code 启动终端时,可能绕过你的 ~/.zshrc(尤其是 zsh 5.9+ 或 macOS 13+ 默认启用 login shell 优化)。验证方法:
在终端里运行:echo $SHELL → 确认是 /bin/zsh 还是 /opt/homebrew/bin/zshls -la ~/.zshrc ~/.zprofile → 看哪个文件实际定义了 export LANG=...
若 ~/.zshrc 里有 locale 设置,但 locale 命令仍不显示,说明 VS Code 没加载它。此时建议把 locale 行移到 ~/.zprofile(login shell 一定会读),内容示例:
export LANG=zh_CN.UTF-8<br>export LC_ALL=zh_CN.UTF-8
第四步:验证输入与字体渲染是否匹配
即使 locale 正确,输入法候选框能弹出、但敲回车后终端只显示乱码,可能是字体不支持中文回显:
- 打开 VS Code 设置,搜
terminal integrated font family; - 填入已安装的中英双语等宽字体,例如:
"SFMono-Regular", "PingFang SC", "Monaco"(用英文逗号分隔,引号不能少); - 避免只写
PingFang SC—— 它缺等宽特性,某些终端渲染异常;SFMono-Regular是 Apple 官方推荐的等宽中文字体; - 改完重启终端,用
echo "测试"和键盘直接输入中文双测。
不复杂但容易忽略











