最近在维护的一台服务器中发现,,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 也都正常了;
本文出自 “方寸小山” 博客,请务必保留此出处