日期:2014-05-17  浏览次数:20672 次

struts2文件下载时,中文文件名乱码是怎么回事?
struts2下载一个以中文为文件名的文件,下载后文件名乱码是怎么回事?
Java code

// 解决方法如下:
downFileName = new String(downFileName.getBytes(), "ISO8859-1");   


请问为什么会出现乱码?不是很了解,麻烦解释下,谢谢。。。

------解决方案--------------------
当在网络中传输时,因为setHeader方法中的字符只能按ISO8859-1传输,所以这时候就又把Unicode字符转换成了 ISO8859-1的编码传到浏览器(就是把刚才高位补的零全去掉),这时浏览器接收到的ISO8859-1码的字符因为符合GB2312编码,所以就可 以显示中文了。
------解决方案--------------------
当时我也遇到类似的问题,觉的是struts2的bug
------解决方案--------------------
同1楼,字符类传输使用 iso8859_1

在后台接收参数时使用以下方法解决:
Java code
String name = request.getParameter("name");
name = new String(name.getBytes("iso8859_1"),"GB2312");