最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Windows 如何排查 Windows Terminal 字体显示乱码的故障
时间:2026-08-11 08:30:49 编辑:袖梨 来源:一聚教程网
Windows Terminal字体乱码核心在于字体名称、终端配置、系统支持三者未对齐:先据方框/图标/中文异常现象定位问题类型;再验证Nerd Fonts是否真安装且名称全匹配settings.json;最后清字体缓存、启用UTF-8编码(chcp 65001)并配置中文字体fallback。
Windows Terminal 字体显示乱码,核心问题通常不是字体没装,而是“字体名称、终端配置、系统支持”三者没对齐。排查要从现象出发,逐层缩小范围,不盲目重装。
先看现象,快速定位问题类型
打开 Windows Terminal,观察乱码具体表现:
- 全是方框 □□□ → 很可能是 Nerd Fonts 没装对,或终端没用上它
- 部分图标正常(如 Git 分支符号 ✓),部分异常(如 Python 图标 ⚙️)→ 多半是字体缓存未刷新,或字体变体(Bold/Italic)缺失
- 终端里正常,但 VS Code 或 WebStorm 里乱 → 问题在编辑器自身终端配置,和 Windows Terminal 无关
- 中文显示为问号或小方块,英文和图标正常 → 不是 Nerd Fonts 问题,是中文字体 fallback 或编码设置问题
查字体是否真装上了
别信下载页截图,要亲手验证:
- 按 Win + R 输入
fonts,打开系统字体库 - 搜索关键词:
Meslo、Cascadia或JetBrainsMono(看你装的是哪个 Nerd Font) - 找到对应字体(如 MesloLGM NF 或 Cascadia Code PL),右键 → “属性”,确认文件状态“已安装”,且“字体名称”栏显示完整名称(含 “NF” 或 “PL” 后缀)
- PowerShell 中也可验证:
Get-ChildItem "C:WindowsFonts" | Where-Object {$_.Name -like "*Meslo*"} | Select-Object Name
核对 settings.json 里的字体名是否完全匹配
Windows Terminal 对字体名称大小写、空格、后缀极其敏感。错一个字符就失效:
- 打开 Terminal 设置(Ctrl + ,),切换到“JSON 模式”
- 找到你用的 profile(如 PowerShell 或 CMD),检查
"face"值 - 必须和字体属性里显示的**全称一模一样**,例如:
✅
"MesloLGM NF"(不是 MesloLGM、不是 Meslo LG M NF)✅
"Cascadia Code PL"(不是 Cascadia Code、不是 CascadiaCode PL) - 如果用了 Bold/Italic 样式,也要单独配:
"weight": "bold"对应的字体文件得存在(比如 Cascadia Code PL Bold)
清缓存 + 检查 UTF-8 编码是否生效
字体名对了还乱?可能是缓存没更新,或底层编码没打通:
- 以管理员身份运行 PowerShell,执行:
Remove-Item "$env:LOCALAPPDATAPackagesMicrosoft.WindowsTerminal_8wekyb3d8bbweLocalStatefontCache" -Recurse -Force然后重启 Terminal
- 在 Terminal 里输入
chcp,确认输出是 活动代码页: 65001;如果不是,说明 UTF-8 编码没启用,中文和部分 Unicode 符号会出问题 - 若
chcp返回 936,需在 settings.json 中为对应 profile 加入启动命令:"commandline": "pwsh.exe -NoExit -Command "chcp 65001 > $null; . $PROFILE""(PowerShell)或 CMD profile 里加:
"commandline": "cmd.exe /k chcp 65001 > nul"
中文字体 fallback 要到位
Nerd Fonts 主要解决图标,中文显示靠系统 fallback。即使用了 Meslo,终端仍需能调出中文字体:
- 在 settings.json 的同一 profile 下,加一行:
"fallbackFont": { "face": "Microsoft YaHei", "size": 12 }(也可换成 SimSun、Noto Sans CJK SC 等你系统里有的中文字体)
- 确保该中文字体已安装:同样在
fonts文件夹里能搜到 - 如果连 Lucida Console 或 Consolas 都不能显示中文,说明系统级中文字体支持异常,需检查“区域设置”里是否勾选了“Beta版:使用 Unicode UTF-8”并已重启