Windows Terminal字体乱码核心在于字体名称、终端配置、系统支持三者未对齐:先据方框/图标/中文异常现象定位问题类型;再验证Nerd Fonts是否真安装且名称全匹配settings.json;最后清字体缓存、启用UTF-8编码(chcp 65001)并配置中文字体fallback。
Windows Terminal 字体显示乱码,核心问题通常不是字体没装,而是“字体名称、终端配置、系统支持”三者没对齐。排查要从现象出发,逐层缩小范围,不盲目重装。
打开 Windows Terminal,观察乱码具体表现:
别信下载页截图,要亲手验证:
fonts,打开系统字体库Meslo、Cascadia 或 JetBrainsMono(看你装的是哪个 Nerd Font)Get-ChildItem "C:WindowsFonts" | Where-Object {$_.Name -like "*Meslo*"} | Select-Object Name
Windows Terminal 对字体名称大小写、空格、后缀极其敏感。错一个字符就失效:
"face" 值✅ "MesloLGM NF"(不是 MesloLGM、不是 Meslo LG M NF)
✅ "Cascadia Code PL"(不是 Cascadia Code、不是 CascadiaCode PL)
"weight": "bold" 对应的字体文件得存在(比如 Cascadia Code PL Bold)字体名对了还乱?可能是缓存没更新,或底层编码没打通:
Remove-Item "$env:LOCALAPPDATAPackagesMicrosoft.WindowsTerminal_8wekyb3d8bbweLocalStatefontCache" -Recurse -Force
然后重启 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"
Nerd Fonts 主要解决图标,中文显示靠系统 fallback。即使用了 Meslo,终端仍需能调出中文字体:
"fallbackFont": { "face": "Microsoft YaHei", "size": 12 }
(也可换成 SimSun、Noto Sans CJK SC 等你系统里有的中文字体)
fonts 文件夹里能搜到