Jasperreport中,通过servlet生成HTML页面报表为何乱码

flynn02 2008-06-29 11:42:24
小弟最近在学习此报表技术,但测试时,总是发现在通过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()

...全文
644 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
flynn02 2008-07-01
  • 打赏
  • 举报
回复
自己顶一下,快点哦,今天结贴了
kokobox 2008-06-30
  • 打赏
  • 举报
回复
1楼是自动回复的,谁发帖他都统计一下然后回复

lz 改用utf-8试一试

shenxiaolei123 2008-06-30
  • 打赏
  • 举报
回复
px 我估计是在JSP程序里判断什么了!
flynn02 2008-06-30
  • 打赏
  • 举报
回复
不是的,你看一下源码就知道了,底层是对该指定图片的封装,但不知道该用何方法对其进行设置
pilishou 2008-06-30
  • 打赏
  • 举报
回复
response.setCharacterEncoding("GBK"); 转码的时候尽量少用gb2312;首先考虑GBK
xuyisun 2008-06-30
  • 打赏
  • 举报
回复
image=px px是参数。是不是在JS里转换地址了?
flynn02 2008-06-30
  • 打赏
  • 举报
回复
谢谢各位帮忙,犯了一个低级错误,加载了老版本的servlet.jar包,没有加载servlet-api.jar包,所以原先找不到response.setCharacterEncoding方法,但重新加载servlet-api.jar包后,设置response.setCharacterEncoding("GBK")就正常了。

UTF-8的格式我尝试了一下,只要统一设置成此编码也可以正常显示的。

但对于第3个问题,有人遇到过吗?
showgood119 2008-06-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kokobox 的回复:]
1楼是自动回复的,谁发帖他都统计一下然后回复

lz 改用utf-8试一试
[/Quote]


utf-8应该没有问题,try it on
chenhongxin 2008-06-30
  • 打赏
  • 举报
回复
response.setCharacterEncoding("GBK");
老紫竹 2008-06-30
  • 打赏
  • 举报
回复
1 字体选择
SanSung 也就是放松。 拼写可能有问题,你在字体里面仔细找就行了。
2 response.setCharacterEncoding("GBK"); // 加上这个!
flynn02 2008-06-30
  • 打赏
  • 举报
回复
其实仔细检查一下用servlet生成的PDF报表还是有上一页,下一页及最后一页的button的,但是不够完整,比如没有总页数多少


哈,现在大家集中力量来讨论servlet生成HTML报表时,也就是我的第3个问题,有经验朋友给大家介绍一下呀
flynn02 2008-06-30
  • 打赏
  • 举报
回复
另外,生成PDF文件时,如何分页呢,如果用IReport,可以自动分页,但是通过servlet生成报表时没有
flynn02 2008-06-29
  • 打赏
  • 举报
回复
结贴也得等到有答案呀

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧