jsp页面生成html和zip文件出现乱码?

帮朋友改以前一个论坛(在mvnforum上面二次开发出来的),要求是对论坛里面的帖子进行搜索,然后将搜索出来的帖子以及帖子里面的附件打包下载下来

  1. 我的做法是将搜索出来的结果生成一个静态的html页面,然后与附件一起压缩成ZIP,然后下载。由于java.util.zip会产生中文的乱码,所以我用的是org.apache.tools.zip。(生成静态页面与生成ZIP都是在一个JSP里面)

  2. 在本地是一切正常的,TOMCAT里面设置了URIEncoding="UTF-8",生成出来的静态页面和ZIP文件里面中文全部正确

  3. 但是当我发布到服务器上面的时候,[color=red]发现生成出来的静态页面里面全部是"???",ZIP压缩文件里面的中文文件名也全部都是问号[/color],服务器的TOMCAT与本地是一样的,也设置了URIEncoding,唯一不同就是服务器是英文的操作系统,不知道这个有没有什么影响?

折腾了三天了,重装TOMCAT多次,但是仍然这样,我感觉是编码问题,但是不知道改哪里,求诸位帮忙。。。

9个回答

设置一下JVM的字符集试试

生成出来的静态页面里面全部是乱码?你进入它的页面(首页面)是乱码吗?试着在自己的本机设置一下字符集看可以不可以,查看---->>编码.

服务器 上默认的系统编码是什么呢?
是否和本地一样的!

如果是linux:
[url]http://hi.baidu.com/wqj403/blog/item/b90b2537c73c7e380855a962.html[/url]
这个帖子 可能解决你的问题

将服务器的编码 改为与本地一样的编码试一试。因为你的服务器的系统为英文 而本地测试有没有问题 很大的可能性是服务器的编码的问题。

打开控制面板,点击“Data, Time, Language , and Regional Options”,然后再点击“Regional and Language Options”,会弹出一个窗口,打开这个窗口的“Languages”选项卡,选中“Install files for East Asian languages(安装东亚语言支持)”,然后点击“Apply”。

(生成静态页面与生成ZIP都是在一个JSP里面) --你jsp的编码正确么?还有就是jsp本身保存类型的编码是否正确。可以参考一下org.springframework.web.filter.CharacterEncodingFilter这个类的实现。

我也有过乱码经历,或许对你有帮助

我的 struts.xml 和 action 的java类都是UTF-8格式的 。 但是我从struts.xml 取出action 的变量时每每乱码。

我是这样解决的:
在 action 中对变量进行转码,new String(a.getBytes(),ISO8859-1);
就是把我的变量从 UTF-8 转换成 ISO8859-1

猜测: struts.xml 在拿到变量的时候进行了一次自动的编码转换
(ISO8859-1 转换成 UTF-8), 所以当我传进去的字符串不是ISO8859-1的时候
电脑傻了,所以输出来的东东都是带星星的。 :roll:

也许你在转换的过程中也存在这样的一个文件,当你传进去的字符串的编码让
它傻眼时,它也把你搞傻眼了。

java虚拟机的编码方式以系统默认的编码方式来编码,
我原先是英文为默认的系统语言。改为中文后重启tomcat解决了

感觉是输出流编码问题 ???? 通常是在系统找不到正确的编码 以?号显示

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问