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