A fresh WSL install shows every Chinese character as an empty box. My host system is English Windows, which is probably why: WSL has neither a Chinese locale nor a font capable of rendering the characters. Adding both fixes it.

1. Install the Chinese language pack

sudo apt install language-pack-zh-hans

2. Reconfigure locales

sudo dpkg-reconfigure locales

In the list that appears, select both en_US.UTF-8 and zh_CN.UTF-8, then pick zh_CN.UTF-8 as the default on the next screen.

The list is keyboard-driven: space to toggle, arrow keys to move, Enter to confirm. Clicking does nothing.

3. Install the font management tool

sudo apt install fontconfig

4. Borrow the fonts from Windows

There are several ways to install fonts; copying the ones Windows already has is the least fussy. WSL exposes your C: drive at /mnt/c, so a single cp does it:

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

Refresh the font cache:

fc-cache -f -v

5. Restart WSL

wsl --shutdown

Run that from PowerShell, then reopen WSL. Chinese should render properly now.

Verifying

locale

You should see LANG=zh_CN.UTF-8.

fc-list :lang=zh | head

If this lists fonts, the font side is working.