天天看點

java下載下傳檔案名是亂碼_java檔案下載下傳檔案名亂碼問題解決方案

String userAgent = request.getHeader("User-Agent");

//針對IE或者以IE為核心的浏覽器:

if (userAgent.contains("MSIE")||userAgent.contains("Trident")) {

fileName = java.net.URLEncoder.encode(fileName, "UTF-8");

} else {

//非IE浏覽器的處理:

fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");

}

response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));

response.setContentType("application/x-download;");

response.setCharacterEncoding("UTF-8");

順便貼一下:各個浏覽器關于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)