Graphics2D图片添加文字添加水印乱码问题

踩坑日记之

解决图片加水印(Graphics2D)出现方框的问题

Graphics2D图片添加文字添加水印乱码问题

 

  ↑ 如上图,后端在电子证书图片上写入文字和水印,出现中文全部被替换成方框的问题。


  一开始以为是编码问题,强制转换utf-8后还是不行。然后同事提醒一句可能是服务器的字体库不兼容你的font字体类型,然后就去线上服务器文件夹查看usr/share/fonts (该目录为服务器存放字体文件目录)下,果然连fonts文件夹都没有,就知道是字体的问题了,换了黑体、宋体、微软雅黑都不行......就将测试服务器的字体文件全部copy到线上服务器该文件夹下,重启java程序还是不生效!最后找到这篇分享才解决了问题,是字体文件没有被linux服务器加载成功的原因:https://bbs.huaweicloud.com/blogs/138046

 

下面列出Linux下安装中文字体的详细步骤:

1. 拷贝本地Windows系统的字体 Windows下字体的存放位置为:C:\Windows\Fonts,里面有很多字体。网上推荐选择自己喜欢的字体进行安装,我选择更为简单粗暴的方式,直接拷贝整个文件夹,打算把所有字体都安装上去。拷贝出来之后,发现也就几百兆,就这么干了。 字体文件夹拷贝出来之后,重命名为WinFronts,直接拷贝出来的文件夹应该是没有相关权限的。将WinFronts文件夹复制到目标Linux服务器/usr/share/fonts下。

2.执行命令,安装字体。下面就是执行一系列的命令安装字体:

  •   去向字体文件目录,命令:cd /usr/share/fonts/WinFonts 
  •   执行:mkfontscale (如果提示 mkfontscale: command not found,要自己安装,安装命令: yum install mkfontscale,提示安装内容是否正确的话, 敲Y,回车就好),安装完成要重新执行:mkfontscale  
  •   执行:mkfontdir 
  •   执行:fc-cache -fv (如果提示 fc-cache: command not found,要自己安装,安装命令: yum install fontconfig ,提示安装内容是否正确的话,敲Y,回车就好),安装完成要重新执行:fc-cache -fv 
  •   可以用:fc-list :lang=zh 命令 查看安装的中文字体,fc-list 命令查看linux的所有字体 
上一篇:【原创】NES第二波:如何用VS Code,编写NES/FC游戏程序。


下一篇:常用光纤跳线的知识