浏览 9446 次
锁定老帖子 主题:中文文件名附件下载引至的疑问...
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-07-18
在get方式传递文件名(带中文的) 现时唯一通过的方法是: 1.在链接中用java.net.URLEncoder.encode对文件名进行编码 2.在JSP或servlet中进行转码(ISO->UTF) 3.在设定response的Header时,要去文件名进行编码(UTF->ISO) 但这方法必须在JSP中写encode的代码,对于用标签做JSP页面时,极不方便。 而另一种似乎可行的方式,却有不解问题,情况如下: 链接页面 <%@ page contentType="text/html; charset=UTF-8"%> <%@ page language="java" pageEncoding="UTF-8"%> <a href="download.jsp?file_name=测试标.jgp">下载链接</a> 下载页面<%@ page contentType="text/html; charset=UTF-8"%> <%@ page language="java" pageEncoding="UTF-8"%> <% out.println("file_name==" + new String(res.getBytes("ISO-8859-1");,"UTF-8"); + "<br>");; //...省略部分代码 %> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-07-18
知道tomcat可以设置urlEncode="UTF-8",不知道搂主用的什么服务器,应该可以设置的。
|
|
返回顶楼 | |
发表时间:2006-07-18
LuckyFox 写道 知道tomcat可以设置urlEncode="UTF-8",不知道搂主用的什么服务器,应该可以设置的。
感谢你的回复! 我用的就是TOMCAT,你说的参数名应该是URIEncoding,我设过UTF-8和GBK但仍然是有这个问题。 不知我是否还有什么遗漏的地方。 |
|
返回顶楼 | |
发表时间:2006-07-19
继续等待正确答案
|
|
返回顶楼 | |
发表时间:2006-07-19
附件下载
response.setContentType("application/octet-stream; CHARSET=utf8"); 文件名的设置 response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode(fileName,"UTF-8")); |
|
返回顶楼 | |
发表时间:2006-07-19
ylt 写道 附件下载
response.setContentType("application/octet-stream; CHARSET=utf8"); 文件名的设置 response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode(fileName,"UTF-8")); 谢谢你的回复,我的设定是: response.setContentType("application/x-msdownload"); response.addHeader("Content-Disposition", "attachment; filename=\""+ new String(attch_name.getBytes("GBK"),"ISO-8859-1") + "\""); 测试也通过。 不知你说的application/octet-stream和我设的application/x-msdownload有没有什么不同。URLEncoder.encode(fileName,"UTF-8")可以理解。 另我的疑问还没到这步,问题是为什么我传过去的中文文件名,一获得时就有奇数乱码问题? 有谁有空帮我按上面提出的JSP代码试一下吗 |
|
返回顶楼 | |