CentOS 7 系统优化之防止显示中文乱码
本文介绍在 CentOS 7 系统中,如何查看系统字符集,以及如何修改系统字符集,解决文件与系统之间,或远程连接工具与系统之间,因为字符集不统一,而造成的中文乱码问题。
一、查看系统字符集
使用
echo $LANG
命令,查看当前系统使用的字符集。[root@centos7 ~]# echo $LANG
en_US.UTF-8
[root@centos7 ~]#
其中
$LANG
是系统的环境变量,使用echo
命令输出了$LANG
变量内容。输出内容为
en_US.UTF-8
,其中表示的意义如下:en_US
表示当前系统的语言是英语。UTF-8
表示当前系统的字符集是 UTF-8 。
使用
locale
命令,查看当前系统使用的字符集。[root@centos7 ~]# 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@centos7 ~]#
使用
locale -a | grep "CN"
命令,查看系统是否有安装中文字符集的支持。[root@centos7 ~]# locale -a | grep "CN"
bo_CN
bo_CN.utf8
ug_CN
ug_CN.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
[root@centos7 ~]#
如果没有中文字符集,例如
zh_CN.utf8
,则需要使用yum install kde-l10n-Chinese
安装中文字符集。使用
localectl
命令,加status
参数,显示当前的区域设置。[root@centos7 ~]# localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
[root@centos7 ~]#
二、修改系统字符集
临时修改字符集
使用
export
命令,修改$LANG
环境变量。[root@centos7 ~]# export LANG=zh_CN.UTF-8
[root@centos7 ~]# echo $LANG
zh_CN.UTF-8
永久修改字符集
使用
vim
命令,修改/etc/locale.conf
文件内容,把LANG="en_US.UTF-8"
修改为LANG="zh_CN.UTF-8"
即可,保存并退出。使用
source
命令,让修改的配置文件生效。[root@centos7 ~]# source /etc/locale.conf
[root@centos7 ~]# echo $LANG
zh_CN.UTF-8
三、解决乱码问题
系统出现乱码的原因,主要分为 2 种情况:
文件内容出现乱码。
解决方法:修改文件或系统的字符集,统一字符集即可。远程连接时出现乱码。
解决方法:修改远程连接工具的字符集,与系统的字符集统一即可。例如,使用 Xshell 工具,在会话连接->属性->终端->编码,修改与系统一致的字符集。或者,修改系统字符集。
总结:出现乱码,就是因为字符集不统一。通过查询修改字符集,达到统一字符集的目的,就能够消除乱码现象。在 CentOS 7 系统中推荐使用en_US.UTF-8
字符集。
(完)