修改Docker容器字符编码为-zh_CN.UTF-8中文字符集
版本记录
2019.4.26日 第一版
问题描述
公司的java项目中使用了openoffice和pdf2html对文件进行格式转换,word,ppt,pdf文件都转换没有问题,唯独excel转换后显示乱码
背景介绍
项目在Docker容器中运行,Docker版本:Docker version 18.06.1-ce, build e68fc7a
容器系统的内核版本:3.10.0-514.el7.x86_64
容器系统的发型版本:Cent0S7
故障原因
和架构沟通过后知道了word,pdf,ppt文件是通过openoffice和pdf2html配合转换的,但excel文件却没有这样处理,而是用了网上开源的java代码实现的,架构看了代码后发现在转换excel文件的时候这段代码读取了宿主系统的语言配置,所以确定了问题的原因就是系统字符编码设置。
解决方法
查看系统字符编码没问题(注意前三行),看来字符集设置正确。排查一下前三行的问题,网上说是没有安装中文字符集导致的
[root@4273aa460888 opt]# localelocale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_MESSAGES to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directoryLANG=zh_CN.UTF-8LC_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=
我们看一本机都安装了哪些字符集,我擦,果然没有安装中文字符集.....(没有安装就算你设置了也没用)
[root@4273aa460888 opt]# locale -alocale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_MESSAGES to default locale: No such file or directorylocale: Cannot set LC_COLLATE to default locale: No such file or directoryCPOSIXen_US.utf8
再看一下/etc/locale.conf的内容,干,还是英文字符集......
[root@4273aa460888 opt]# cat /etc/locale.conf LANG="en_US.UTF-8"
好,我们接下来安装一下中文字符集
删除yum.conf文件中的语言配置sed -i '13'd /etc/yum.conf安装字体和glibcyum install -y kde-l10n-Chinese glibc-common
我们再看一下,终于有了
[root@35b0e9b16498 opt]# locale -a|grep zhzh_CNzh_CN.gb18030zh_CN.gb2312zh_CN.gbkzh_CN.utf8zh_HKzh_HK.big5hkscszh_HK.utf8zh_SGzh_SG.gb2312zh_SG.gbkzh_SG.utf8zh_TWzh_TW.big5zh_TW.euctwzh_TW.utf8
我们再修改一下/etc/locale.conf文件
echo -e 'export LANG="zh_CN.UTF-8"\nexport LC_ALL="zh_CN.UTF-8"' > /etc/locale.confsource /etc/locale.conf
我们再看一下字符编码,好了,没有报错,且一切正常。
[root@35b0e9b16498 opt]# localeLANG=zh_CN.UTF-8LC_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=zh_CN.UTF-8
补充信息
无
知识扩展
无
转载于:https://blog.51cto.com/wangxiaoke/2385413
修改Docker容器字符编码为-zh_CN.UTF-8中文字符集相关推荐
- docker配置容器mysql启动参数_修改Docker容器启动配置参数
有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...
- 修改数据库mysql字符编码为UTF8
修改数据库mysql字符编码为UTF8 Mysql数据库是一个开源的数据库,应用非常广泛.以下是修改mysql数据库的字符编码的操作过程.步骤1:查看当前的字符编码方法 mysql> show ...
- MySQL常见问题的解决,root用户密码忘记,不是内部或外部命令,修改数据库和表的字符编码,命令行客户端的字符集问题
文章目录 问题1:root用户密码忘记,重置的操作 问题2:mysql命令报"不是内部或外部命令" 问题3:错误ERROR :没有选择数据库就操作表格和数据 问题4:命令行客户端的 ...
- Docker(十七)-修改Docker容器启动配置参数
有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...
- docker 镜像修改的配置文件自动还原_所以到底该如何修改 docker 容器的端口映射!!!...
|问题背景 docker 创建容器时,指定了端口映射(-p) 如果容器运行之后发现端口需要改怎么办? 当前是访问 9999 端口 |删除原有容器,重新创建新的容器 |删除容器 docker |重新创建 ...
- mysql如何字符编码,如何修改MYSQL的字符编码
如何修改MYSQL的字符编码 查看字符集设置 mysql> show variables like 'collation_%'; +----------------------+-------- ...
- 修改docker容器中的文件方法
修改docker容器配置文件方法 昨天准备修改docker容器中的配置文件,由于是xml配置文件,不需要编译,想着直接编辑一下就ok了,但是进入容器发现竟然没有vi命令,一番查找,可以使用以下方法 1 ...
- linux修改容器内的mysql端口映射_修改docker容器端口映射的方法
大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改 ...
- Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间
一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能.此lib拦截用于检索当前时 ...
最新文章
- Could not load file or assembly App_Licenses.dll的问题
- Java及Android开发环境搭建
- 笔记 - Ali Cloud网络(VPC, SLB) 简介
- 高并发学习(二)安全发布对象/不可变对象/线程封闭
- 延迟分析中的案例研究:锁定与同步
- ssm框架下 tiles框架 的使用
- ServletContext读取图片
- BZOJ4868: [Shoi2017]期末考试
- 解决在使用CSS3制作不间断轮播图中 收尾连接后Interval 延时问题
- 经典书单 —— 机器学习/深度学习/AI/CV/PGM
- Android Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
- 移动端webview canvas bug
- 地理中经纬度的英文名称
- 涨见识!Java String转int还有这种写法
- java替换图片文字_Java 替换PPT文档中的文本和图片
- 小程序源码:团长头像制作小程序
- MAC苹果电脑关闭系统完整性保护SIP(System Integrity Protection)
- c++控制台密码管理系统
- 怎么做读书分享PPT课件?
- 华星充电:什么是新能源充电桩