老版本的iReport中不支持中文,你去下个新的去,0.32.

解决方案 »

  1.   

    jasperreports-0.6.1-project
    iReport-0.3.2-src
    apache-ant-1.6.2-bin
    这是我用的三个软件版本,好象己经是最新的了,不知道我是哪里没有设置好,还是怎么了,中文就有些问题。反正里面可能涉及到的字符集我全改成GB2312还是不行,不能显示中文。
      

  2.   

    楼上说的那三个文件我都看过了,它里面没有提到中文的解决方法,我主要是从mysql中读出中文的时候就出问题,如果直接用static text tool来显示中文的话是没有问题的,这是在页面显示,还有就是如果你在iReport里面File->open,然后会出现一个打开文件的对话框,也就是在这个对话框中如果有中文的话,也显示为一个个的小方框。
    我用的Mysql中的字符集是latin1格式的,反正就是从它里面读出来的时候就显示为乱码,不知道大家是怎么解决的。
      

  3.   

    它上面提的都是IReport本身的中文问题的解决方案!
    你如果能正确的生成xml文件,说明ireport的工作已经结束了,下面是使用JasperReport引擎,进行报表显示。另外不知你要生成什么格式的报表,如果是pdf,你需要使用STZHONGS.TTF字体。然后在xml里引用它就行了。
      

  4.   

    也就是我在iReport中做一个报表的时候,就用它自己默认的方式(JRViewer preview)打开,这个时候如果从数据库中读出的字符中有中文的话就显示为乱码。如果选用pdf方式打开一样不能正常显示。
      

  5.   

    我自己做了一个测试,我先用access做了一个表,然后用odbc-jdbc连接上,然后在iReport中显示中文没有问题,但是从mysql中读中文出来就有问题了,估计是mysql中的字符集有问题。
    但是如果是mysql中的字符集有问题,那我们怎么解决?比如oracle,sql server,db2等一些数据库也不可能都将字符集设置成GB2312或是GBK,象这样的情况我们怎么办?
      

  6.   

    这种问题就是jdbc的问题了,你可以试着把取出的数据转换一下编码,比如:
    value = new String(value.getBytes("8859_1"), "GB2312");
    主要还是看你的mysql使用的什么字符集!
    但这需要修改源码,比较麻烦。
    另外的可能是jdk版本的问题,老的Jasperreport有这个问题,但不知新的有无此问题。
    建议你到javaresearch报表专区开个帖子问问,里面讨论这的很多!
    我们开始的项目使用过jasperreport,数据库是oracle9i,挺正常!