跳到主要内容

文件名乱码如何处理?

现象为中文显示异常或者文件过滤对中文目录无效,因为系统没有使用 utf8 编码,导致不支持中文.

查看当前系统编码

locale

会出现以下内容:

[root@VM-0-8-centos]~# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

一般为 xxx.UTF-8 才正常,如果为 POSIX 或其他的话,可能就是不支持中文的编码.

查看系统支持的编码

locale -a

会出现以下内容:

[root@JM-SRV-WEB ~]# locale -a
C
C.utf8
POSIX
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE.utf8
en_IE@euro
en_IL
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SC.utf8
en_SG
en_SG.utf8
en_US
en_US.iso885915
en_US.utf8
en_US@ampm.UTF-8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8

可能显示的内容有多有少,显示的内容为系统支持的编码,一般来说,设置成 en_US.UTF-8C.utf8zh_CN.utf8,都是正常的. (要保证设置的值出现在上述列表中)

设置系统编码

已设置为 en_US.UTF-8 为例:

localectl set-locale LANG=en_US.UTF-8

重启系统

重启你的服务器,而不是重启 zfile,重启后再去 zfile 查看中文编码是否正常。