今天用到文件下载中文名的问题, 翻阅各种资料
只要在HttpServletResponse 中的setHeader 的文件名称 使用ISO-8859-1 方式编码就可以了
response.addHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes(),"ISO-8859-1"));
2014年5月28日
补充 IE使用utf-8编码
String userAgent=request.getHeader("user-agent");
//判断用户浏览器, 决策使用哪种编码
if (userAgent.contains("ie")) { //IE使用UTF-8
return URLEncoder.encode(fileName, "UTF-8");
}else{//其它浏览器使用标准码
return new String(fileName.getBytes(),"ISO-8859-1");
}
只要在HttpServletResponse 中的setHeader 的文件名称 使用ISO-8859-1 方式编码就可以了
response.addHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes(),"ISO-8859-1"));
2014年5月28日
补充 IE使用utf-8编码
String userAgent=request.getHeader("user-agent");
//判断用户浏览器, 决策使用哪种编码
if (userAgent.contains("ie")) { //IE使用UTF-8
return URLEncoder.encode(fileName, "UTF-8");
}else{//其它浏览器使用标准码
return new String(fileName.getBytes(),"ISO-8859-1");
}
本文深入探讨了在HTTP响应中设置文件名时遇到中文乱码问题的原因,并提供了适用于不同浏览器(特别是IE)的编码解决方案。通过分析请求头中的User-Agent,文章给出了在IE中使用UTF-8编码,在其他浏览器中使用ISO-8859-1编码的方法,以确保文件名正确显示。
1361

被折叠的 条评论
为什么被折叠?



