centOS 中文乱码解决方案

简介: centOS 中文乱码解决方案

为什么会出现中文乱码


在安装系统时,选择的系统语言为中文简体


1.查看是否安装中文包


可以使用下面的命名查看系统是否安装了中文安装包。

locale -a |grep "zh_CN"

结果:

[root@k8s-node1 ~]# locale -a |grep "zh_CN"
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8


没有输出,说明没有安装,输入下面的命令安装:

yum groupinstall "fonts" -y

安装完成,查看安了哪些中文语言包

[root@k8s-node1 ~]# locale -a |grep "zh_CN"
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8


说明系统已安装中文语言包,无需再安装。重要提示,如果按照下面的步骤你的系统仍然无法使用中文,那么请一个一个尝试上面的编码方式。比如把LANG="zh_CN"修改为LANG="zh_CN.gb18030"。


2 修改配置文件


在修改配置文件之前,我们先看看当前系统语言环境:

# 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
LANG="zh_CN"
# source   /etc/locale.conf   ## source 命令可以使修改的配置文件立即生效
vim /etc/locale.conf 进入编辑页面,输入i开始编辑,编辑完成输入esc到底行模式,然后输入:wq,保存并退出


提示:


如果 vim 工具未安装,则执行如下命令:

yum install vim*

之后输入y,即可等待安装完成。


也可以使用命令修改locale.conf配置文件:

#  localectl set-locale LANG=zh_CN
#  source   /etc/locale.conf  # 生效


之后查看当前语言环境:

# echo $LANG
zh_CN
# locale
LANG=zh_CN
LC_CTYPE="zh_CN"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_COLLATE="zh_CN"
LC_MONETARY="zh_CN"
LC_MESSAGES="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL=


3. 验证是否成功


[root@k8s-master ~]# date
2021年 10月 19日 星期二 14:59:09 CST


4.命令补充解释


locale -a |grep "zh_CN" :列出所有可用的公共语言环境的名称,然后筛选中文


locale -a :列出所有可用的公共语言环境的名称.


从中如果可以看到如下几项,也说明系统已经安装了中文语言包。无需再安装,那这几项代表什么意思呢?

1673445921486.jpg

{语言代号}_{国家代号}.{字符集}


zh是中文的代号、CN是中国的代号、gb18030,gb2312,utf8是语言字符集


那么每一项可以通俗理解为 “你是说中文的,你在中国,语言字符集是gb18030/gb2312/utf8”


如果没有发现以上几项,则手动安装中文语言包


# yum install kde-l10n-Chinese (大概11M)


locale : 查看当前系统语言环境

1673445937674.jpg

("en_US.UTF-8"按照上面的内容可以理解为“说英语,在美国,语言字符集为UTF-8”)


每项的意思分别为 :


LANG:当前系统的语言


LC_CTYPE:语言符号及其分类


LC_NUMERIC:数字


LC_COLLATE:比较和排序习惯


LC_TIME:时间显示格式


LC_MONETARY:货币单位


LC_MESSAGES:信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等


LC_NAME:姓名书写方式


LC_ADDRESS:地址书写方式


LC_TELEPHONE:电话号码书写方式


LC_MEASUREMENT:度量衡表达方式


LC_PAPER:默认纸张尺寸大小


LC_IDENTIFICATION:对locale自身包含信息的概述


LC_ALL:优先级最高变量,若设置了此变量,所有LC_* 和LANG变量会强制跟随它的值


我们看到虽然安装了中文语言包但本机的语言环境并不是中文


重启系统

# reboot


5.远程工具SSH Secure 乱码问题的解决


使用远程工具进行连接时,如果 linux 有中文文件或目录,显示时会出现乱码,原因

是 linux 编码是 UTF-8,而远程工具默认是当前系统本地编码即 GBK。所以解决方案是统

一两者编码就 OK 了,但是该 SSH Secure 工具不能设置编码,所以通过修改 linux 的系

统编码的方式进行统一编码。


第一步:查看当前系统的语言环境。


这里因为之前已经修改成了gbk的编码。

1673445961618.jpg

第二步:修改配置文件locale.conf

# vim /etc/locale.conf

输入i进入编辑模式,编辑完成按ESC进入底行模式。然后输入:wq退出并保存。


执行下面的命令,让修改生效。

# source /etc/locale.conf

输入date验证。如果还有问题,也可以reboot重启一下。

1673445788629.jpg

相关文章
|
7月前
|
Linux 开发工具 C语言
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
Centos8下编译安装最新版ffmpeg解决方案(含Centos8换源阿里云)
1008 3
|
Linux Python
[笔记]CentOS7中文乱码解决方案
[笔记]CentOS7中文乱码解决方案
264 0
|
数据可视化 Linux
Linux centos7.x系统 下没有ens33 网卡的解决方案
此时还没有enp0s31f6网卡相关的配置信息 , 所以我们需要配置enp0s31f6网卡相关的信息
1031 0
|
6月前
|
Linux 网络安全
杨老师课堂之关于阿里云Centos7 如何设置权限的解决方案
杨老师课堂之关于阿里云Centos7 如何设置权限的解决方案
70 0
|
2月前
|
缓存 Linux 编译器
【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
通过上述步骤,您应该能够在CentOS环境中成功安装并使用log4cplus日志组件。面对任何安装或使用过程中出现的问题,仔细检查错误信息,对照提供的解决方案进行调整,通常都能找到合适的解决之道。log4cplus的强大功能将为您的项目提供灵活、高效的日志管理方案,助力软件开发与维护。
67 0
|
7月前
|
网络协议 Linux
centos7部分桥接网络ping不通解决方案
centos7部分桥接网络ping不通解决方案
Centos8安装yum源时候出现的异常问题及解决方案(保好使)
Centos8安装yum源时候出现的异常问题及解决方案(保好使)
|
Linux 开发工具
centos7 中文乱码解决方法
centos7 中文乱码解决方法
390 1
|
7月前
|
Linux 网络安全 Python
解决方案:Centos7运行Django项目报错no module named _ssl
解决方案:Centos7运行Django项目报错no module named _ssl
184 0
|
缓存 Java Linux
Centos应用“Cannot allocate memory”的解决方案
Centos应用“Cannot allocate memory”的解决方案
507 0
Centos应用“Cannot allocate memory”的解决方案