java下载文件时的文件名乱码处理
java下载文件时的文件名乱码处理
在不同浏览器下需要有不同的处理,否则还是会出现文件名为乱码:
//判断浏览器
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("MSIE")){//IE
// 设置文件头,文件名称或编码格式
response.setHeader("Content-Disposition", "attachment;filename=""
+ java.net.URLEncoder.encode(filename, "UTF-8")
+ """);
}else{//firefox
response.setHeader("Content-Disposition", "attachment;filename=""
+ new String(filename.getBytes("UTF-8"),"iso-8859-1")
+ """);
}