日期:2014-05-16 浏览次数:20760 次
JFreeChart和中文验证码的乱码问题和jsp的编码无关,是由于Java虚拟机找不到字体文件造成的,所以同类的Swing或者AWT的中文乱码问题也适用
环境:
JDK1.6
RedHat5
Tomcat6
解决方法:
1.确认%JavaHome%/jre/lib/fonts目录下存在zysong.ttf
2.在%JavaHome%/jre/lib/fonts目录下执行"ttmkfdir -o fonts.dir"命令,重新生成fonts.dir文件
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.复制所使用的中文字体文件(如zysong.ttf)到此目录中(如果没有fallback目录,请手动建立。)
$JAVA_HOME/jre/lib/fonts/fallback
或者将Linux系统的字体目录作为JDK下面的一个字体目录连接。
ln -s $FONTS_PATH/FONT_DIR $JAVA_HOME/jre/lib/fonts/fallback
为何要建立fallback目录请参照下面的连接:http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
sequence.fallback的说明:
If the runtime environment has a directory lib/fonts/fallback and
this directory contains valid TrueType or Type 1 fonts, the runtime
automatically adds these fonts as fallback fonts for 2D rendering. On
Windows, if there is a system EUDC (End User Defined Characters) font
registered with Windows, the runtime automatically adds this font as
well as a fallback font for 2D rendering
7.重新启动tomcat,大功告成!