前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos7 中文乱码问题解决方法

centos7 中文乱码问题解决方法

作者头像
OwenZhang
发布2021-12-08 16:19:31
9.2K0
发布2021-12-08 16:19:31
举报
文章被收录于专栏:Owen's World

1.查看是否安装中文包

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

代码语言:javascript
复制
locale -a |grep "zh_CN"
复制代码

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

代码语言:javascript
复制
yum groupinstall "fonts" -y
复制代码

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

代码语言:javascript
复制
[root@iz2ze6adlpez0gy7j13vrmz /]# 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 修改配置文件

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

代码语言:javascript
复制
# 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配置文件

代码语言:javascript
复制
# vim /etc/locale.conf
LANG="zh_CN"
# source   /etc/locale.conf

vim /etc/locale.conf 进入编辑页面,输入i开始编辑,编辑完成输入esc到底行模式,然后输入:wq,保存并退出
复制代码

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

代码语言:javascript
复制
#  localectl set-locale LANG=zh_CN
复制代码

之后查看当前语言环境:

代码语言:javascript
复制
# 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. 验证是否成功

代码语言:javascript
复制
[root@node2 ~]# date
2017年 10月 16日 星期一 16:30:24 CST
复制代码

4.命令补充解释

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

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

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

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

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

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

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

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

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

("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变量会强制跟随它的值

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

重启系统

代码语言:javascript
复制
# reboot
复制代码

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

使用远程工具进行连接时,如果 linux 有中文文件或目录,显示时会出现乱码,原因 是 linux 编码是 UTF-8,而远程工具默认是当前系统本地编码即 GBK。所以解决方案是统 一两者编码就 OK 了,但是该 SSH Secure 工具不能设置编码,所以通过修改 linux 的系 统编码的方式进行统一编码。

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

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

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

代码语言:javascript
复制
# vim /etc/locale.conf
复制代码

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

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

代码语言:javascript
复制
# source /etc/locale.conf
复制代码

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.查看是否安装中文包
  • 2 修改配置文件
  • 3. 验证是否成功
  • 4.命令补充解释
  • 5.远程工具SSH Secure 乱码问题的解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档