首先要区别3个概 :编码集、字符集、字体 是完全不同的东西,我们要解决的是字符集问题。
当一个系统初始化完毕后,会生成一个 /usr/lib/locale/locale-archive 文件,这个是字符集二进制文件,是系统不同语言运行的核心,通过命令 locale -a 可以看到当前文件中支持的语言
locale 命令可以看到当前的字符集情况
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8 可以通过如下命令生成到/usr/lib/locale/locale-archive文件中
locale -a |grep zh_CN 确认了我们系统支持了中文的能力
fc -list 确认我们支持当前系统支持的字体
对于系统已经支持中文的条件下,只需要选择对就行了
centos7专门设置了 /etc/locale.conf文件
回到locale命令
当前系统语言环境
# echo $LANG
en_US.UTF-8
# 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=
虽然安装了中文语言包但本机的语言环境并不是中文,需要修改locale.conf配置文件:
# vim /etc/locale.conf 修改配置文件
# source /etc/locale.conf 生效配置
# localectl set-locale LANG=XXX 使用命令修改locale.conf配置文件
验证配置:
[root@node2 ~]# date 2022年 01月 05日 星期三 21:52:48 CST
备注:本人亲测,修改完配置文件,还是出现乱码,重启服务器后解决,这个需要注意。
参考链接:
Linux (centos)中文乱码问题解决 及说明_centos 中文乱码-CSDN博客
CentOS7中文乱码解决方法 - 离梦 - 博客园 (cnblogs.com)
标签:en,UTF,LC,CentOS,locale,US,乱码,解决 From: https://www.cnblogs.com/hjj1215/p/18295698