JFreeChart在linux下生成图表时中文乱码,原因是JRE没有到对应中文字库,解决方法如下:
解决方法1:
1.确认%JavaHome%/jre/lib/fonts目录下存在f
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目录下存在f
5. 在%JavaHome%/jre/lib目录下,执行 cp fontconfig.RedHat.3.properties.src fontconfig.properties
6. 重启resin服务器OK.
解决方法2:
1.将f复制到Java安装目录/jre/lib/fonts
2.修改Java安装目录 %JavaHome%/jre/lib/fonts下的f文件
修改首行的数字(数字+1)
在最后一行添加f -misc-zysong--medium-r-normal--0-0-0-0-c-0-GB18030
3. 将%JavaHome%/jre/lib/fontconfig.RedHat.3.properties.src文件,更名为fontconfig.properties;
4. 建立/usr/share/fonts/zh_CN/TrueType文件夹,拷贝f至该文件夹下.
5. 重启resin服务器OK.
使用这个小程序来测试某个环境下JRE是否支持中文,如下:
package test;
public class ImageTester {
public static void generate(String fileName) throws Exception {
BufferedImage image = new BufferedImage(300, 200, BufferedImage.TYPE_INT_RGB);
Graphics g = Graphics();
linux中文名
String fontType = "宋体";
g.setFont(new Font(fontType , Font.BOLD, 22));
g.drawString("你好我好", 30, 30);
g.drawString("\u5b8b\u4f53", 30, 80);
ImageIO.write(image, "JPEG", new FileOutputStream(new File(fileName)));
}
/**
* @param args
*/
public static void main(String[] args) throws Exception {
generate(args[0]);
}
}
linux下运行时这样运行:
java test.ImageTetser /home/test.png
原因:首先,Linux环境下的JFreeChart和中文验证码的乱码问题和jsp的编码无关,是由于Java虚拟机不到字体文件造成的,所以同类的Swing或者AWT的中文乱码问题也适用
环境:
JDK1.5(JDK版本很重要,如果是1.4.2版本的话,JRE目录下的字体配置文件不大一样)
RedHat4.0
Tomcat5.0
解决方法:
1.确认%JavaHome%/jre/lib/fonts目录下存在f
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目录下存在f
5.在%JavaHome%/jre/lib目录下,执行 cp fontconfig.RedHat.3.properties.src fontconfig.properties
6.重新启动tomcat,大功告成!
JFreeChart在linux下生成图表时中文乱码
JFreeChart在linux下生成图表时中文乱码,原因是JRE没有到对应中文字库,解决方法如下:
解决方法1:
1.确认%JavaHome%/jre/lib/fonts目录下存在f
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目录下存在f
5. 在%JavaHome%/jre/lib目录下,执行 cp fontconfig.RedHat.3.properties.src fontconfig.properties
6. 重启resin服务器OK.
解决方法2:
1.将f复制到Java安装目录/jre/lib/fonts
2.修改Java安装目录 %JavaHome%/jre/lib/fonts下的f文件
修改首行的数字(数字+1)
在最后一行添加f -misc-zysong--medium-r-normal--0-0-0-0-c-0-GB18030
3. 将%JavaHome%/jre/lib/fontconfig.RedHat.3.properties.src文件,更名为fontconfig.properties;
4. 建立/usr/share/fonts/zh_CN/TrueType文件夹,拷贝f至该文件夹下.
5. 重启resin服务器OK