说明

Linux系统默认使用英文字符集,不会安装中文字符集等其他字符。
查看当前字符集
$ echo $LANG
en_US.UTF-
安装字符集
使用locale命令看看当前系统所使用的字符集

$ locale
LANG=en_US.UTF-
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 -a | grep CN
bo_CN
bo_CN.utf8
ug_CNug_CN.utf8
zh_CNzh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
若没有执行以下命令进行安装
#CentOS6.x:
yum groupinstall chinese-support #CentOS7.x
yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common #定义字符集
localedef -c -f UTF- -i zh_CN zh_CN.UFT-
#确认载入成功
locale -a
修改系统字符集
修改系统字符集的配置文件:
  • Centos6.x字符集配置文件:
    /etc/sysconfig/i18n
  • Centos7.x字符集配置文件:
    /etc/locale.conf
# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
# source /etc/locale.conf

或者临时改变字符集:

LANG="<字符集>"
LANG="zh_CN.UTF-8" #或者把字符集环境变量写到profile
vim /etc/profile
source /etc/profile
验证字符集修改

# echo $LANG
zh_CN.UTF- # locale
LANG=zh_CN.UTF-
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
修改ssh终端字符集
如果按照以上方法设置修改设置中文语言还是不行,注意SSH终端选择的编码,如xshell为例,把终端的编码选择中文,或者UTF8即可。
如果系统界面依然出现乱码,再安装以下包:
yum groupinstall "fonts" -y

如果还是乱码,进入fonts安装路径执行以下命令
[root@localhost ~]# cd /usr/share/fonts/
[root@localhost ~]# fc-cache -fv

容器环境配置字符集

以CentOS7容器镜像为例
查看默认配置
# docker run -it --rm centos sh
sh-4.2# echo $LANG sh-4.2# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL= sh-4.2# locale -a
C
POSIX
en_US.utf8
以配置zh_CN.GB18030字符集为例
yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common
localedef -c -f GB18030 -i zh_CN zh_CN.GB18030 #验证成功加载中文语言包zh_CN.gb18030
# locale -a
C
POSIX
en_US.utf8
zh_CN.gb18030
修改字符集配置
$ cat /etc/locale.conf
LANG="en_US.UTF-8"
$ echo 'LANG="zh_CN.GB18030"' > /etc/locale.conf && source /etc/locale.conf
$ echo "export LC_ALL=zh_CN.GB18030" >> /etc/profile && source /etc/profile #验证配置生效
$ echo $LANG
zh_CN.GB18030
Dockerfile示例:
docker容器环境需要基于dockerfile制作对应字符集镜像,追加以下内容到自定义dockerfile中:
# cat Dockerfile
FROM centos
LABEL Maintainer dockerhub.com
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum -y install kde-l10n-Chinese \
&& yum -y reinstall glibc-common \
&& localedef -c -f GB18030 -i zh_CN zh_CN.GB18030 \
&& echo 'LANG="zh_CN.GB18030"' > /etc/locale.conf \
&& source /etc/locale.conf \
&& yum clean all
ENV LANG=zh_CN.GB18030 \
LC_ALL=zh_CN.GB18030

原文链接:https://blog.csdn.net/networken/article/details/97951173

CentOS7及Docker配置中文字符集问题的更多相关文章

  1. 在Centos7下docker配置自动化环境镜像(python3.7+selenium 3.11+firefox 62+geckodriver 0.21)

    最近在学习Docker,准备做自动化测试代码集成的功能.如下文章的前提是已经安装好linux系统,且成功安装好Docker. 接下来我会按步骤一步一步的对自动化需要的一些环境进行安装,如果没有特别说明 ...

  2. Centos7 Docker配置TLS认证的远程端口的证书生成教程(shell脚本一键生成)

    通过 TLS来进行远程访问 百度百科 - TLS.我们需要在远程 docker 服务器(运行 docker 守护进程的服务器)生成 CA 证书,服务器证书,服务器密钥,然后自签名,再颁发给需要连接远程 ...

  3. Sybase配置中文语言支持及字符集

    在windows平台上,Sybase ASE15.0.7安装完成后默认语言是:英语(us_english),默认字符集为:cp850.cp850是一个西欧字符集,虽然也能使用cp850字符集保存汉字, ...

  4. 解决 Docker Image的UTF-8中文字符集的问题(以Oracle为例)

    最近因业务需要,需要搭建一个Oracle数据库,当然Oracle数据库支持Linux,但是在上面搭建很是复杂,所以我想起了Docker ,果然在上面发现了一个OracleDB的镜像,所以下载之,运行, ...

  5. CentOS7配置中文

    CentOS7配置中文 yum install kde-l10n-Chinese -y vim /etc/locale.conf修改为zh_CN.UTF-8 vim /etc/environment添 ...

  6. [转帖]centos7上设置中文字符集

    centos7上设置中文字符集 https://www.cnblogs.com/kaishirenshi/p/10528034.html author: headsen  chen date: 201 ...

  7. centos7 学习1 KDE配置中文

    安装kde桌面后没有中文,可以用以下方法配置中文 #yum list kde*chinese 会显示可以安装的包,我的显示如下 kde-l10n-Chinese.noarch -.fc14 @upda ...

  8. centos7上设置中文字符集

    author: headsen  chen date: 2019-03-14   09:00:31   Linux系统会默认使用英文字符集,不会安装中文字符集等其他字符. 公司内部文件服务器等需要中文 ...

  9. centos7 修改中文字符集

    CentOS 7字符集的问题与6有点区别,会出现下面问题,查看是中文,vi进入就变成乱码了 生产中修改配置文件   [root@ce1d2002a999 ~]# cat /etc/locale.con ...

随机推荐

  1. 基于Netty和SpringBoot实现一个轻量级RPC框架-Client篇

    前提 前置文章: <基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> <基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇> 前 ...

  2. SPFA判负环模板

    void DFS_SPFA(int u){   if(flag) return; vis[u]=true;   for(int i=head[u];i;i=edges[i].nxt){   if(fl ...

  3. Spring(二)核心容器 - 简介 、BeanFactory、ApplicationContext

    目录 前言 1.容器简介 2.容器的结构 2.1 BeanFactory 2.2 ApplicationContext 2.2.1 ConfigurableApplicationContext 2.2 ...

  4. 如何使用F4的IRAM2内存

    在使用KEIL做F4的项目的时候发现RAM区有片上IRAM2选项,查了datesheet后发现这块是CCM内存区 CCM内存是在地址0x1000000映射的64KB块,只提供CPU通过数据D总线进行访 ...

  5. 如何添加.pch文件

    1.Create a pch , call name is project+xxx.pch For example: DuoME-PrefixHeader.pch 2.在project——>Bu ...

  6. Drupal SA-CORE-2019-010 .开头文件名(如.htaccess) 文件上传

    目录 drupal .开头文件名 文件上传 原生模块分析 第三方模块分析 补丁 参考 drupal .开头文件名 文件上传 通过diff 8.8.1的补丁,很容易发现修复点,位于core\module ...

  7. 异步查询转同步加redis业务实现的BUG分享

    在最近的性能测试中,某一个查询接口指标不通过,开发做了N次优化,最终的优化方案如下:异步查询然后转同步,再加上redis缓存.此为背景. 在测试过程中发现一个BUG:同样的请求在第一次查询结果是OK的 ...

  8. MySQL-5.7.29 的安装与配置

    解压缩,我这里的解压路径是:D:\Program Files\Java MySQL-5.7.29下载地址:https://www.jianguoyun.com/p/DcKSfd8Q6LnsBxiY8c ...

  9. (转) exp1-2://一次有趣的XSS漏洞挖掘分析(2)

      第一次和一套程序做了这么多次的斗争.今天基友又给我来信说,没得玩了.了解了下情况,是他拿着0day到处插,被人家发现了.还出了个公告,说所有***必须安装补丁.呵呵,性福总是走的这么突然.这乐子一 ...

  10. c#数字图像处理(十三)图像开运算与闭运算

    图像开运算与闭运算定义 二值图像开运算的数学表达式为: g(x, y)=open[f(x, y ), B]=dilate{erode[f(x, y),B],B} 二值图像的开运算事实上就是先作腐蚀运算 ...