本机上没有问题,部署在阿里云服务器上都几个月了都没有问题,上传过一次代码后突然验证码就显示为看不懂的符号了。然而代码对此并没有影响的。。。
打印生成的验证码
String word = vcu.produceNumAndChar(length);
LOGGER.info("验证码;{}", word);
生成的验证码是没有问题的,那么问题应该就是在画图的上面了
看了一遍遍代码生成验证码还是没找到原因。。。
只能Baidu and google
解决办法(亲测有效):
如果你的也是宋体,那按如下步骤应该没问题
Graphics2D graphics2d = (Graphics2D) graphics;
graphics2d.setFont(new Font("宋体", Font.BOLD, 18));
在linux中新增字体:
在本地 路径 C:\Windows\Fonts 下找到需要的字体 (如:宋体 simsun.ttc )
拷贝simsun.ttc 字体文件到/usr/share/fonts/zh_CN/TrueType/ 目录下
运行命令 fc-cache /usr/share/fonts/zh_CN/TrueType/
查看linux是否已支持安装字体 fc-list ,
java项目 需要在jdk下同样安装对应的字体
拷贝simsun.ttc文件到 目录 /usr/local/src/jdk1.8.0/jre/lib/fonts/ 下(个人jdk路径),
运行命令 fc-cache /usr/local/src/jdk1.8.0/jre/lib/fonts/
?