如何保证火狐 ie 谷歌等浏览器 下载时文件名不出现乱码浏览器
String agent = (String)getRequest().getHeader("USER-AGENT");
logger.info("USER-AGENT:{}",agent);
//服务器端如何识别客户端浏览器是IE11的状况,IE7-10都经过USER-AGENT中的MSIE判断为IE浏览器
if(agent != null && agent.indexOf("MSIE") == -1 && agent.indexOf("rv:11") == -1) {// FF MSIE 指的是ie7 -ie10 后面指的是ie11
logger.info("================== 使用Base64转码====================================");
// String enableFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";
String enableFileName = "=?UTF-8?B?" + (new String(Base64.encode(file.getName().getBytes("UTF-8")))) + "?=";
response.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
} else { // IE
logger.info("================== 使用URLEncoder转码====================================");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8"));
} 服务器