weixin_42360958 2010-12-01 18:59
浏览 380
已采纳

jfreechart-0.9.21报表有中文乱码,搞死我了

jfreechart-0.9.21报表,在windows下tomcat中文没有问题,在linux websphere下就有问题了,中文乱码,咋回事?碰过的朋友出来说话,朋友们,速度啊

  • 写回答

3条回答 默认 最新

  • luosng001 2010-12-02 14:16
    关注

    一般windows下默认的中文编码是GBK,linux一般默认是 UTF-8。

    可以这样试试:

    修改/var/lib/locales/supported.d/local文件,在文件中添加
    zh_CN.GBK GBK
    zh_CN.GB2312 GB2312
    sudo dpkg-reconfigure --force locales

    修改需要获得root权限

    然后在输出的结果中会出现
    zh_CN.GB2312 done
    zh_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的概念)。

    希望有所帮助!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决