原因:首先,JFreeChart和中文验证码的乱码问题和jsp的编码无关,是由于Java虚拟机找不到字体文件造成的,所以同类的Swing或者AWT的中文乱码问题也适用。
环境:
JDK1.5(JDK版本很重要,如果是1.4.2版本的话,JRE目录下的字体配置文件不大一样)
Ubuntu8.04.2
Tomcat5.0
解决方法(已测试通过):
1.确认%JavaHome%/jre/lib/fonts目录下存在zysong.ttf,如果不存在,可以将windows下的C:\WINDOWS\Fonts\simsun.ttc复制到此目录,然后改名为zysong.ttf。
2.在%JavaHome%/jre/lib/fonts目录下执行"ttmkfdir -o
fonts.dir"命令,重新生成fonts.dir文件,如没有此命令,请执行:sudo apt-get install
ttmkfdir。
3.确认/usr/share/fonts/zh_CN/TrueType目录存在,如果不存在则mkdir创建
4.确认/usr/share/fonts/zh_CN/TrueType目录下存在zysong.ttf
5.在%JavaHome%/jre/lib目录下,执行 cp fontconfig.RedHat.3.properties.src
fontconfig.properties
6.重新启动tomcat,大功告成!