来源普索网 displaytag的export功能中文出现乱码...

本文提供了解决使用displaytag导出PDF和Excel文件时遇到的中文乱码问题的方法。通过修改相关类文件并设置正确的字体和编码,可以有效解决乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//注:这篇文章很有参考价值,它帮忙解决了导出数据时excel中文乱码问题,但是没有解决pdf中文显示为空白的问题,最起码没有解决我的问题。

//后记:pdf输出中文为空白的问题已经解决了,参见我的另一文:《displaytag无法导出pdf、rtf?????? 已解决》

ou

 

 

 

大家可以看看此文。

 

displaytag的export功能中文出现乱码...

2009年09月19日 05:01 来源:普索网

displaytag不错用
但是我在使用export功能时,
export成excel档和CSV档时,中文会变成乱码
export成pdf档时,中文会变成空白
哪位高手曾解决此一问题?
请指教一下
3Q 


我也有问题.我所有的页面和数据库都用utf-8编码,但是到excel那里就出错,是不是excel就根本不支持utf- 8 


我也是~转成pdf中文就给我空着不显示,谁会教我谢谢


之前试用displaytag的export功能时,也发生过中文乱码的问题,我试着去看其原始码,发现其编码设定为Big5,当编码与此不同时,就会产生乱码。为此,我试着改了二支程式:
1、org.displaytag.filter.ResponseOverrideFilter,我修改其init的部分,让我可以在web.xml里设定我要的编码。
2、org.displaytag.filter.ExportDelegate,这支程式是真正决定资料编码的地方,所以配合修改,让它去接前一支程式的参数。

另,当我解决此一问题後,又发现PDF的中文仍有问题,只要资料是中文的地方,皆会显示空白,我也试着去看其原始码,发现其资料的字型设定为HELVETICA,才会无法显示中文,为此我试着改了一支程式:
org.displaytag.export.PdfView,我修改了它设定字型的地方,将字型改为MHei-Medium(细明体)。

目前我再试着Export就没有中文的问题了


哈 纯灌水~~
广告一下 楼上的是偶目前同事 这锅问题花了她一下子的时间就改好了。
用她的方式 真的就能有UTF-8的EXCEL 和 PDF 欧
叫她神吧~~~ 

Amy5239 wrote:
之前试用displaytag的export功能时,也发生过中文乱码的问题,我试着去看其原始码,发现其编码设定为Big5,当编码与此不同时,就会产生乱码。为此,我试着改了二支程式:
1、org.displaytag.filter.ResponseOverrideFilter,我修改其init的部分,让我可以在web.xml里设定我要的编码。
2、org.displaytag.filter.ExportDelegate,这支程式是真正决定资料编码的地方,所以配合修改,让它去接前一支程式的参数。

另,当我解决此一问题後,又发现PDF的中文仍有问题,只要资料是中文的地方,皆会显示空白,我也试着去看其原始码,发现其资料的字型设定为HELVETICA,才会无法显示中文,为此我试着改了一支程式:
org.displaytag.export.PdfView,我修改了它设定字型的地方,将字型改为MHei-Medium(细明体)。

目前我再试着Export就没有中文的问题了



不好意思,能否请您详述一下如何修正那两支程式
我修改过後, EXCEL 汇出 utf-8 网页内容看到的仍然是乱码
(CSV 跟 XML utf-8 中文显示正常)

PS: displaytag 版本 1.0 


Excel不支援UTF-8的编码
请改用Big5编码吧


列出displaytag 1.2版中文PDF与Excel中文乱码解决方案:
Excel乱码部分(使用poi-3.2-FINAL-20081019.jar)//注意版本,否则可能提示缺少部分方法。。。。
1.请下载displaytag-export-poi-1.2.jar
2.在displaytag.properties加入export.excel.class=org.displaytag.export.excel.ExcelHssfView

PDF中文消失部分(使用iText 2.1.5) 

1.请下载 iTextAsian.jar
2.请下载displaytag 1.2的source code
3.自行复制org.displaytag.export里的PdfView.java於自订的package
4.於initTable()中修改

1

smallFont = FontFactory.getFont(FontFactory.HELVETICA, 7, Font.NORMAL, new Color(0, 0, 0))

变成

1

smallFont = FontFactory.getFont("MHei-Medium", "UniCNS-UCS2-H", Font.DEFAULTSIZE);


5.在displaytag.properties加入export.pdf.class=com.kymco.displaytag.export.PdfView,其中com.kymco.displaytag.export应改成您自己的package 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值