最近在维护的一台服务器中发现,vim sh脚本及上传带中文名的文档到服务器,都显示乱码,排查处理方法如下:
1、使用 env 命令查看语言环境变量设置
# env |grep LANG
#
注:竟然是空的,即没有设置;
2、使用 locale 命令查看现有语言环境
# locale
LANG=
LC_CTYPE="POSIX"LC_NUMERIC="POSIX"LC_TIME="POSIX"LC_COLLATE="POSIX"LC_MONETARY="POSIX"LC_MESSAGES="POSIX"LC_PAPER="POSIX"LC_NAME="POSIX"LC_ADDRESS="POSIX"LC_TELEPHONE="POSIX"LC_MEASUREMENT="POSIX"LC_IDENTIFICATION="POSIX"LC_ALL=
注:发现全是POSIX,即系统默认设置,没有设置系统语言环境;locale -a <-a>参数是查看可用语言环境;
3、编辑系统语言文件
# vim /etc/sysconfig/i18n
新增(该文档仅这两二行设置)
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
4、校验
这时使用 env 命令还查看不到设置生效,退出该shell,重新登录,然后校验:
# env |grep LANG
LANG=zh_CN.UTF-8
-----------------------
# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"LC_NUMERIC="zh_CN.UTF-8"LC_TIME="zh_CN.UTF-8"LC_COLLATE="zh_CN.UTF-8"LC_MONETARY="zh_CN.UTF-8"LC_MESSAGES="zh_CN.UTF-8"LC_PAPER="zh_CN.UTF-8"LC_NAME="zh_CN.UTF-8"LC_ADDRESS="zh_CN.UTF-8"LC_TELEPHONE="zh_CN.UTF-8"LC_MEASUREMENT="zh_CN.UTF-8"LC_IDENTIFICATION="zh_CN.UTF-8"LC_ALL=-----------------------
再上传带中文的文档 及 vim sh 也都正常了;