WSL2 的 Ubuntu 系统里中文文件名乱码,这是系统编码里缺少 zh_CN.UTF-8 所致。

解决方案:

  1. 打开终端进入 Ubuntu 系统
  2. 运行以下命令:
sudo dpkg-reconfigure locales
  1. 在打开的面板中,使用空格键选中 en_US.UTF-8、zh_CN.UTF-8,然后使用 tab 键切换至 Ok,再将 C.UTF-8 选为默认编码

验证:

  • 查看编码列表
$ locale -a
C
C.utf8
POSIX
en_US.utf8
zh_CN.utf8
  • 查看编码设置
$ 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=
  • 查看默认编码
$ cat /etc/default/locale
LANG=C.UTF-8
  • 修改默认编码
sudo update-locale LANG=C.UTF-8
为什么不选 en_US.UTF-8 为默认编码?因为 en_US.UTF-8 在进行字母排序的时候会忽略前面的 .,这显然不符合预期,而 C.UTF-8 则不会。

标签: none

添加新评论