首页 > 技术文章 > java使用awt包在生产环境docker部署时出现中文乱码的处理

yzdtofly 2020-05-13 11:42 原文

描述:

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

解决方案:

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

 

 

 

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

 

 

 

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

 

推荐阅读