1.页面汉字显示乱码
现象:数据库中存储的内容不是乱码,但是用报表查询出来后,页面中汉字显示为乱码。
原因:数据库取数时没有转码
解决方法:在WEB-INF/reportConfig.xml文件中的dataSource节点,设置转码。
dataSource表示用户在WEB应用中要用到的数据源配置,其格式如下:
数据源的JNDI名称,数据库类型[,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码][,SQL是否需要转码];[重复]……。reportConfig.xml中的jspCharset节点设置、jsp页面设置<%@ pagecontentType="text/html;charset=UTF-8" %>和request.setCharacterEncoding("UTF-8" )这几个charset最好设置成一样的编码。
2.统计图乱码
现象:统计图的报表在网页上发布时,统计图里的汉字会变成小方框
原因:是因为服务器端操作系统的中文安装包没有装全,导致报表里用到的字体在服务器端的操作系统里找不到,因此成了小方块。
解决方法:安装中文字体
(一)办法一、拷贝中文字体:
(1)、在启动java的时候加入如下参数,参数值为jdk的安装路径 -Dsun.java2d.fontpath=……/j2se/jre/lib/fonts
(2)、操作系统安装完整的中文安装包,然后把操作系统的中文字体文件拷贝到……/j2se/jre/lib/fonts目录下
(3)、打开……/j2se/jre/lib目录下的font.properties文件,把新添加的字体文件的对照信息加进该文件即可
(4)、重起webserver
(二)办法二、安装中文包:
(1)、操作系统安装完整的中文安装包
(2)、卸载jdk,重新安装,让jdk读取新的中文字体文件
总结:首先检查reportCongfig.xml中dataSource参数配置和jspCharset,以及页面编码设置,如果这几项都设置了,还是乱码,那就是中文字体没有安装全,在web服务器的操作系统上安装中文字体。