Ubuntu 22.04 WSL 2 在渲染字符时出现问题

Ubuntu 22.04 WSL 2 在渲染字符时出现问题

我在我的 Windows 版本 10.0.19043.1889 上启用了 WSL,安装了 Ubuntu Ubuntu 22.04.1 LTS。安装后,WSL 设置为版本 1:

wls -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Running         1

然后,我将 Ubuntu 转换为 WSL 版本 2:

wsl --set-default-version 2
wsl --shutdown
wsl --set-version Ubuntu-22.04 2

转换为版本 2 后,Ubuntu 22.04 App 无法正确渲染角色:

gstef@AHERDSKGSTEF01:~$ ls
''$'\001\020''3@pu'$'\001''@8'$'\r''@'$'\036\035\006\004''@@@�'$'\002''�'$'\002\b\003\004\030\003\030\003\030\003\034\034\001\001\004''�'$'\037''�'$'\037\020\001\005'

Ubuntu 22.04 App 终端在主目录中输出 ls 命令

不是在主目录 ~ 中执行 ls 命令。如果在 Windows 驱动器 /mnt/c/ 上执行 ls,则字符渲染正确:

gstef@AHERDSKGSTEF01:/mnt/c$ ls
ls: cannot access 'DumpStack.log.tmp': Permission denied
ls: cannot access 'hiberfil.sys': Permission denied
ls: cannot access 'pagefile.sys': Permission denied
ls: cannot access 'swapfile.sys': Permission denied
'$GetCurrent'              DumpStack.log.tmp  'Program Files'         SWSetup                      WINDOWS
'$RECYCLE.BIN'             Intel              'Program Files (x86)'   SYSTAG.BIN                   bootTel.dat

Ubuntu 22.04 App 终端在 Windows C: 驱动器上输出 ls 命令

我确信使用 Ubuntu 22.04 和 WSL 版本 1 时,字符的渲染是正确的。

请注意,如果我理解正确的话,我的 Windows 语言设置为日语,但语言环境是默认英语

gstef@AHERDSKGSTEF01:~$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

有人知道,错误的字符渲染是否与转换为 WSL 2 有关,或者是否与语言环境设置有关?

在此先感谢您的帮助。

答案1

我删除了 Ubuntu 22.04 应用程序,将 WSL 默认设置为 2 wsl --set-default-version 2,然后重新安装了 Ubuntu 22.04 应用程序。这解决了我的问题,字符输出目前似乎没问题。(当然,在这个过程中我丢失了所有数据,这是我可以承受的,因为这是全新安装。)

相关内容