mac zsh终端乱码需依次修复三处:设终端编码为utf-8、配置lang/lc_all为en_us.utf-8、换用meslolgs nf字体;git乱码另需四条git config命令统一编码。
mac zsh 终端显示乱码,核心问题通常出在三处:终端编码没设成 utf-8、shell 环境变量未声明中文本地化、字体不支持中文或 powerline 符号。修复不难,但得按顺序检查,漏掉一步都可能白调。
确认并启用 UTF-8 终端编码
这是最底层的渲染基础。即使后续全配对了,这里错了,中文照样变方块或问号。
- 打开终端 → 顶部菜单栏「终端」→「偏好设置」→ 左侧选中当前配置(如“Pro”)→ 右上角点「文本」标签页
- 滚动到底部「字符编码」,确保下拉菜单选的是 Unicode (UTF-8)
- 关掉窗口,新开一个终端标签页生效
设置 LANG 和 LC_ALL 环境变量
zsh 启动时靠这两个变量决定怎么解释和输出字符。空值或 C locale 是乱码最常见的原因。
- 运行
locale查看当前值;若LANG或LC_ALL显示为空或C,就需要补上 - 编辑配置文件:
nano ~/.zshrc - 在文件末尾添加两行(注意带英文双引号):
export LANG="en_US.UTF-8"export LC_ALL="en_US.UTF-8" - 保存后执行
source ~/.zshrc立即加载 - 提示:用
zh_CN.UTF-8也可以,但 macOS 原生更稳定支持en_US.UTF-8,尤其配合 Git、Homebrew 等工具时
换用支持中文和 Powerline 的字体
编码和变量都对了,但字体不含中文字形或 Powerline 符号,依然会显示为空格、方框或小方块(比如 或 显示异常)。
- 推荐直接使用 MesloLGS NF(Nerd Font 版本),它同时覆盖中文、Emoji、Powerline 所有符号,且专为 macOS 渲染优化
- 下载地址:https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k(4 个 .ttf 文件全装)
- 双击安装进「字体册」→ 回到终端偏好设置 → 「文本」→ 「字体」→ 点「更改…」→ 选中 MesloLGS NF
- VS Code 用户额外注意:在设置里搜
terminal.integrated.fontFamily,填入MesloLGS NF
补充:Git 中文路径和日志乱码
如果只在 git status 或 git log 里看到中文乱码,是 Git 自身编码没对齐:
- 运行以下命令一次性配好:
git config --global core.quotepath falsegit config --global gui.encoding utf-8git config --global i18n.commit.encoding utf-8git config --global i18n.logoutputencoding utf-8
做完这四步,zsh 终端里的中文目录、命令提示符、Git 输出、甚至 emoji 和主题图标,基本都能正常显示。关键不是堆参数,而是让编码、环境、字体三层严丝合缝。










