Ubuntu 22.04 WSL 2 で文字のレンダリングに問題が発生する

Ubuntu 22.04 WSL 2 で文字のレンダリングに問題が発生する

Windows バージョン 10.0.19043.1889 で WSL を有効にし、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 アプリは文字を正しくレンダリングしません。

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 アプリのホームディレクトリでの 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 アプリの 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 アプリを再インストールしました。これで問題は解決し、文字出力は今のところ問題ないようです。(もちろん、このプロセス中にすべてのデータが失われましたが、新規インストールだったので許容範囲内でした。)

関連情報