默认装好的 WSL 显示中文全是方块。我的主机系统是英文版 Windows,估计是这个原因——WSL 里既没有中文 locale,也没有能渲染中文的字体。补上这两样就好了。

一、安装中文语言包

sudo apt install language-pack-zh-hans

二、重新配置 locale

sudo dpkg-reconfigure locales

在弹出的列表里勾选 en_US.UTF-8 和 zh_CN.UTF-8,下一屏选择 zh_CN.UTF-8 作为默认语言。

列表用空格键勾选、方向键移动、回车确认,不是鼠标点。

三、安装字体管理工具

sudo apt install fontconfig

四、把 Windows 的字体拿过来用

装 Windows 字体的方法有很多,我觉得下面这个直接复制的最省事。WSL 里 /mnt/c 就是 Windows 的 C 盘,所以一条 cp 就够了:

sudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windows

刷新字体缓存:

fc-cache -f -v

五、退出重进 WSL

wsl --shutdown

在 PowerShell 里执行,然后重新打开 WSL,中文就正常了。

验证

locale

应该能看到 LANG=zh_CN.UTF-8。

fc-list :lang=zh | head

能列出中文字体就说明字体装好了。