开发团队反馈,在项目运行中,使用 pagoffice 和 使用 word 转 pdf 会出现乱码,针对这一问题,进行解决,做此记录,用以回顾。
使用 pagoffice 和 使用 word 转 pdf 出现乱码有两个问题,对应关系为:
综上所述,要想彻底解决容器乱码问题,则需要解决:1.使用 utf-8 ,支持中文; 2.安装中文字体。
UTF-8
编码,支持中文C.UTF-8
编码 使用C.UTF-8
编码能够支持中文的,官网上的docker镜像是支持并默认是C.UTF-8
编码。
locale -a
#查看容器所有语言环境
locale
#查看容器使用的语言环境
如果使用的镜像不是C.UTF-8
编码,则可以更改为此编码格式,在运行容器时添加以下参数:
-e export LANG="C.UTF-8"
也可以在 docker 启动的时候,加上参数。
-e export LANG="zh_CN.UTF-8"
但是我使用的是docker官网的镜像,使用参数后,确实是设置使用了"zh_CN.UTF-8"
,但是没有进行安装。会有报错:
locale
#查看设置的字符集
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.UTF-8
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=
locale -a
#查看安装的字符集
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
en_US.utf8
fc-list
fc-list :lang=zh
在 windows 系统中,字体存在于 C:\Windows\Fonts
下。复制后,打上传到 Linux 服务器 /opt/software/chinese
中(我是要在docker容器中安装字体,如果要在linux主机中安装字体,则直接放在服务器的 /usr/share/fonts/
文件夹下)。
docker ps -a
#查看容器
docker cp /opt/software/chinese tomcat:/usr/share/fonts/
#tomcat为容器名称
docker exec -it tomcat /bin/bash
#进入容器
chmod 4 -R chinese/
授权文件夹
fc-list :lang=zh
#查看中文字体
fc-cache -fv
#刷新缓存
pagoffice
---- 改动docker 容器后,需要重启容器word2pdf
---- 刷新字体缓存即可,不需要重启容器因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务