前言
环境:centos7.9
如果你安装的linux系统是英文版,那么可能无法显示中文,如下所示:
[root@nginx ~]# touch ??? #输入中文,变成了问号
[root@nginx ~]# cat log.txt #打开带有中文的日志文件,中文显示乱码
大幅度å‘对对对
[root@nginx ~]#
这里就需要更改linux的操作系统字符集,让其能正常显示中文。
查看Linux的字符集
[root@nginx ~]# echo $LANG #方法一、查看Linux的字符集
en_US.UTF-8
[root@nginx ~]# env |grep LANG #方法二、查看Linux的字符集
LANG=en_US.UTF-8
[root@nginx ~]#
[root@nginx ~]# export |grep LANG #方法三、查看Linux的字符集
declare -x LANG="en_US.UTF-8"
[root@nginx ~]#
[root@nginx ~]# export |grep LANG #方法四、查看Linux的字符集
declare -x LANG="en_US.UTF-8"
[root@nginx ~]# 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=
[root@nginx ~]#
查看系统支持的字符集
[root@nginx ~]# locale -a #查看标准的字符集
wa_BE.utf8
wae_CH
wae_CH.utf8
wal_ET
wal_ET.utf8
...........
yi_US.utf8
yo_NG
yo_NG.utf8
yue_HK
yue_HK.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8 #我们使用这种
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_SG
zh_SG.gb2312
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8
修改linux字符集为 zh_CN.utf8
[root@nginx ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
说明:
-c:就算发出了警告消息,仍然强制语言环境表的创建
-f CharMap:指定实际字符编码的文件名称,如果没有指定该标志,则采用ISO 8859-1 代码集
-i SourceFile:指定包含语言环境类别源定义的文件的路径名。如果没有给出此标志,那么源定义从标准输入上读取
[root@nginx ~]# export LANG='zh_CN.utf8' #设置环境变量
[root@nginx ~]# echo 'LANG="zh_CN.utf8"' > /etc/locale.conf #写入配置文件