4

docker alpine版本服务中显示中文

 3 years ago
source link: https://www.wencst.com/archives/711
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

docker alpine版本服务中显示中文

作者: wencst 分类: docker,JAVA,云计算,微服务,架构设计 发布时间: 2017-11-23 09:54 阅读: 13,640 次

宿主机:CentOS7.1

docker镜像:自己制作的tomcat 7+sun jdk 1.7+alpine基础镜像

二、问题描述

由于java程序中引入了activiti组件,在activiti生成动态流程图时,中文字符显示占位符,如下图所示:

三、解决方法

1.首先activiti在生成流程图时,需要引入字符集,如“宋体”,看是否均已设置完毕。

InputStream imageStream = diagramGenerator.generateDiagram(bpmnModel, "png", highLightedActivitis,highLightedFlows,"宋体","宋体",null,null, 1.0);

2.在tomcat启动时,需要增加启动参数

-Dfile.encoding=UTF-8

3.程序中前后端展现都使用UTF-8格式,否则对于GB2312和UTF-8转换也会有问题

4.在启动的linux环境中修改LANG环境变量

#export LANG=zh_CN.UTF-8

5.增加alpine中“宋体”的字符集

5.1.首先在windows下或网上下载,找到“宋体”或使用字体的安装文件

windows下宋体字符集位置:C:\Windows\Fonts\SIMSUN.TTC

5.2.将此文件拷贝到alpine镜像中/usr/share/fonts/win/(此文件夹随意指定,不过最好用此文件夹,后续说明)下,并赋权

#chmod a+r simsun.ttc

5.3.修改repositories源(alpine系统专用源文件在/etc/apk/repositories),三组数据源选其中一组(一对)即可

#系统默认数据源,下载较慢

#http://dl-cdn.alpinelinux.org/alpine/v3.6/main
#http://dl-cdn.alpinelinux.org/alpine/v3.6/community

#aliyun数据源
https://mirrors.aliyun.com/alpine/v3.6/main/
https://mirrors.aliyun.com/alpine/v3.6/community/

# ustc数据源
https://mirrors.ustc.edu.cn/alpine/v3.6/main/
https://mirrors.ustc.edu.cn/alpine/v3.6/community/

5.4.alpine系统中安装font-adobe-100dpi

#apk update

fetch https://mirrors.aliyun.com/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
fetch https://mirrors.aliyun.com/alpine/v3.6/community/x86_64/APKINDEX.tar.gz
fetch https://mirrors.ustc.edu.cn/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
fetch https://mirrors.ustc.edu.cn/alpine/v3.6/community/x86_64/APKINDEX.tar.gz

#apk add font-adobe-100dpi
(1/10) Installing encodings (1.0.4-r0)
(2/10) Installing font-alias (1.0.1-r1)
(3/10) Installing libfontenc (1.1.3-r1)
(4/10) Installing libpng (1.6.29-r1)
(5/10) Installing freetype (2.7.1-r1)
(6/10) Installing mkfontscale (1.0.7-r2)
(7/10) Installing mkfontdir (1.0.5-r1)
(8/10) Installing expat (2.2.0-r1)
(9/10) Installing fontconfig (2.12.1-r0)
(10/10) Installing font-adobe-100dpi (1.0.3-r0)
Executing busybox-1.26.2-r5.trigger
Executing mkfontscale-1.0.7-r2.trigger
Executing mkfontdir-1.0.5-r1.trigger
Executing fontconfig-2.12.1-r0.trigger
Executing glibc-bin-2.26-r0.trigger

5.5.此font-adobe-100dpi安装文件会在/usr/share/fonts中生成自己所需的文件夹,加载字体

#cd /usr/share/fonts

#mkfontscale(此步某些文档中说需要,我这里未使用)

#mkfontdir(此步某些文档中说需要,我这里未使用)

#fc-cache -f

#fc-list(查看所有字体)

至此alpine系统“宋体”字体安装完毕,再次生成activiti流程图时展示如下:

如果文章对您有用,扫一下支付宝的红包,不胜感激!

欢迎加入QQ群进行技术交流:656897351(各种技术、招聘、兼职、培训欢迎加入)

Leave a Reply Cancel reply

You must be logged in to post a comment.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK