关于java文件下载文件名乱码问题解决方案
做为1名程序员,大家应当都遇到过乱码的问题吧!这篇文章是自己解决关于关于java文件下载文件名乱码问题的处理:
String fileName = "下载的文件名";
String userAgent = request.getHeader("User-Agent");
//针对IE或以IE为内核的阅读器:
if (userAgent.contains("MSIE")||userAgent.contains("Trident")) {
fileName = java.net.URLEncoder.encode(fileName, "UTF⑻");
} else {
//非IE阅读器的处理:
fileName = new String(fileName.getBytes("UTF⑻"),"ISO⑻859⑴");
}
response.setHeader("Content-disposition", String.format("attachment; filename="%s"", fileName));
response.setContentType("application/vnd.ms-excel;charset=utf⑻");
response.setCharacterEncoding("UTF⑻");
这模样就能够了!
顺便贴1下:各个阅读器关于request.getHeader("User-Agent"); 的输出内容:
chrome : Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
FIREFOX:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
IE8 : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)
IE9 : Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
IE10 : Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:10.0) like Gecko
IE11 : Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
360 极速模式:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36
360 的IE9模式:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)