docker java 中文乱码_java使用awt包在生产环境docker部署时出现中文乱码的处理

描述:

有一个业务是需要后台生成图片,后台使用了Graphics2D类。在docker部署时,图片上的中文变成方块。

解决方案:

百度了一下,发现是生产上的docker容器下没有中文字体,需要在容器里面添加中文字体,但是这样的话要单独维护一个中文字体的镜像。后来直接在代码里面处理,字体文件放在resouces下面,代码直接根据这个文件生成字体。

c3e81f08197704265a6859ea9bc5a0b8.png

f7466ec2be258f6e658976a61e8780c2.png

2d09d31151feed6755be2db20398de44.png

发现这样处理还是有问题,又度娘了一下,百度说是因为制作镜像的时候Dockerfile使用的是open-jdk,里面没有字体的功能。结果docker容器还是要安装字体服务,在Dockerfile加入安装字体的语句,生成镜像后用新镜像启动容器

e581779772f816a2f5d72897f66bd266.png

用的是oracle-jdk应该是没有问题的,使用open-jdk,需要在Dockerfile添加 RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* 生成镜像即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值