Jasperreport中,通过servlet生成HTML页面报表为何乱码
小弟最近在学习此报表技术,但测试时,总是发现在通过servlet生成HTML报表时出现乱码,以下是报表的HTML页面的源代码:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"/>
</head>
<body text="#000000" link="#000000" alink="#000000" vlink="#000000">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<a name="JR_PAGE_ANCHOR_0_1"/>
<table style="width: 595px" cellpadding="0" cellspacing="0" border="0" bgcolor="white">
<tr>
<td><img alt="" src="image.jsp?image=px" style="width: 105px; height: 1px;"/></td>
<td><img alt="" src="image.jsp?image=px" style="width: 77px; height: 1px;"/></td>
</tr>
<tr valign="top">
<td colspan="3"><img alt="" src="image.jsp?image=px" style="width: 185px; height:36px;"/></td>
<td colspan="5"><span style="font-family: SansSerif; font-size: 24.0px;">? ? ? ? ? ?
</span></td>
<td colspan="3"><img alt="" src="image.jsp?image=px" style="width: 169px; height: 36px;"/></td>
</tr>
<tr valign="top">
<td><img alt="" src="image.jsp?image=px" style="width: 105px; height: 34px;"/></td>
<td><span style="font-family: ??_GB2312; font-size: 18.0px;">User</span></td>
<td colspan="3"><img alt="" src="image.jsp?image=px" style="width: 78px; height: 34px;"/></td>
</tr>
</table>
</table>
</body>
</html>
有以下几点疑问:
1.为什么生在HTML报表页面上,会出现??_GB2312,我设置的是仿宋_GB2312,中文为什么不识别
2.即使我将上述的一个Text字体设置成SansSerif,但其值在HTML还是显示为?????
3.image.jsp?image=px,这个px图片是怎么识别的
因为刚接触这个报表,不太清楚,肯请大家帮我一下!有线索朋友也可以提一下,下面是我的源码,我贴出来一部分,
response.setContentType("text/html; charset=GB2312");
....
....
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,new HashMap(),jsRet);
JRHtmlExporter exporter = new JRHtmlExporter();
HttpSession session = request.getSession();
Map imagesMap = new HashMap();
session.setAttribute("IMAGES_MAP", imagesMap);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image=");
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "GB2312");
exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
exporter.exportReport()
------解决方案--------------------
1 字体选择
SanSung 也就是放松。 拼写可能有问题,你在字体里面仔细找就行了。
2 response.setCharacterEncoding("GBK"); // 加上这个!
------解决方案--------------------
response.setCharacterEncoding("GBK");
------解决方案--------------------
------解决方案--------------------