默认装好的 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
能列出中文字体就说明字体装好了。