解决各大浏览器下载文件,文件名乱码的问题

亲测 谷歌 火狐 Edge IE 都可以

//导入的Base64包
import org.apache.commons.codec.binary.Base64;

response.setContentType("application/x-download");// 设置response内容的类型
String userAgent =request.getHeader("USER-AGENT");

if(userAgent.indexOf("MSIE")!=-1||userAgent.indexOf("Edge")!=-1||userAgent.indexOf("Trident")!=-1){
    fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
    response.setHeader("Content-Disposition","attachment;filename="+fileName);
}else if(userAgent.indexOf("Firefox")!=-1){
    fileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";
    response.setHeader("Content-Disposition","attachment;filename="+fileName);
}else{
    fileName = URLEncoder.encode(fileName, "UTF-8");
    response.setHeader("Content-Disposition","attachment;filename="+fileName);
}

你可能感兴趣的:(解决各大浏览器下载文件,文件名乱码的问题)