问题描述
jfreechart-0.9.21报表,在windows下tomcat中文没有问题,在linux websphere下就有问题了,中文乱码,咋回事?碰过的朋友出来说话,朋友们,速度啊
解决方案
一般windows下默认的中文编码是GBK,linux一般默认是 UTF-8。可以这样试试:修改/var/lib/locales/supported.d/local文件,在文件中添加zh_CN.GBK GBKzh_CN.GB2312 GB2312sudo dpkg-reconfigure --force locales修改需要获得root权限然后在输出的结果中会出现zh_CN.GB2312 donezh_CN.GBK done如果还不行,可以试试这个方法(转):首先是看看jfreechart默认是用什么字体的,查看如下代码:System.out.println(jfreechart.getTitle().getFont().getFamily()); 结果输出是: SansSerif 很陌生的字体,既然这样,我们就可以设置自己想要的字体,比如设置柱状图的标题字体,可以如下代码:jfreechart.getTitle().setFont(new Font("宋体", Font.BOLD, 22));其他的诸如X,Y轴的名称、刻度和类别等文字的字体也可以一并进行设置,还是以柱状图为例子,Font font = new Font("宋体", Font.BOLD, 22);jfreechart.getTitle().setFont(font); // 标题font = new Font("宋体", Font.PLAIN, 14);jfreechart.getLegend().setItemFont(font); // 列类型的文字字体font = new Font("宋体", Font.PLAIN, 16);categoryaxis.setLabelFont(font); // x轴名称的字体categoryplot.getRangeAxis().setLabelFont(font); // y轴名称的字体CategoryPlot categoryplot = jfreechart.getCategoryPlot();CategoryAxis categoryaxis = categoryplot.getDomainAxis();font = new Font("宋体", Font.PLAIN, 12);categoryaxis.setTickLabelFont(font); // x轴上的刻度名称字体categoryplot.getRangeAxis().setTickLabelFont(font); // y轴上的刻度名称字体font = new Font("宋体", Font.PLAIN, 18);categoryplot.setNoDataMessage(emptyMsg);categoryplot.setNoDataMessageFont(font); // 没有数据时的提示这样设置完毕后,在linux下运行就试试。环境是:Redhat4,Jdk6,jfreechart-1.0.0(这个版本中还没有Theme的概念)。希望有所帮助!!
解决方案二:
其实就是jfreechart中设置的字体,linux中没有,将字体考到linux jdk下就行:D
解决方案三:
不知道乱码是什么样的。我能够想到的就是1.linux系统字符集设置2.jfreechart的中文字体文件linux下没有