jfinal验证码图片出现奇怪的乱码问题

在本地运行时验证码正常,但部署到阿里云环境:

image.png
image.png

产生了如下乱码问题:
image.png

起初以为是

com.jfinal.captcha.CaptchaRender

里面的图片生成是否有问题,在与波总交流沟通之后,波总提醒了关键两点:
1、操作系统字体是否有问题:位置:

/usr/share/fonts/

2、JDK本身的字体是否有问题:位置:

$JAVA_HOME/jre/lib/fonts/

经检查JDK字体没有问题(字体文件完整),排除这个问题之后;
找到系统字体,发现多了一些字体库,使用暴力做法把字体库全部删除(移到另外目录去也可以-- 好的做法或许应该去安装相应的字体库),重启服务器;终于正常了
image.png

谢谢波总提醒,希望能帮助遇到一样情况的人。

评论区

祥子

2017-09-24 16:46

这个问题我昨天也遇到了,新的阿里云服务7.0.2版本需要自己加字库

skybiran

2017-10-13 10:50

CentOs7 无可用"Chinese Support"

在安装完Centos 7之后,设置中文输入(intelligent pinyin)后,除Terminal外无法输入中文,切换输入法无效的情况。网上的一般解决办法是groupinstall ‘chinese support’等包,但是centos7中均无法找到,后寻得办法获得中文支持:

yum groupinstall "Fonts"
yum groupinstall "Input Methods"
重启后中文输入正常。

Psbye

2017-10-22 19:37

Neoman

2018-03-09 11:01

我暴力删除 目录:/usr/share/fonts/。重启服务,正常了。

JFinal

2018-03-09 11:20

@Neoman 暴力删除前建议先做个备份,在出问题后还可以再恢复:
cp -a /usr/share/fonts /usr/share/font_bak

guanxb

2018-03-21 16:43

@skybiran yum groupinstall "Fonts" 重启服务. 好用,谢谢

skybiran

2018-04-02 10:03

@guanxb 客气了,因为好用,所以共享

JFinal

2018-04-02 10:44

@guanxb @skybiran @Neoman jfinal 3.4 版已经改进了这里,换了更加通用的字体

skybiran

2018-04-10 16:43

@JFinal bo 总威武,666

yiihoo

2018-10-16 06:33

非常好用,刚刚解决按照 yum groupinstall "Fonts"

JFinal

2020-10-02 16:35

@all

由于某些 linux 发行版缺少缺少显示设备、键盘或鼠标,无法支持 Graphics、Font、Color、ImageIO、Print、Graphics2D 等类的使用

jfinal 4.9.02 新增一个配置来解决:
me.setToJavaAwtHeadless();