String agent = request.getHeader("user-agent");
filename = DownloadUtils.getFileName(agent,filename);
再写一个工具类即可,其思路是获取客户端使用的浏览器版本信息,根据不同的版本信息,设置filename的不同编码方式
public class DownloadUtils {
public static String getFileName(String agent,String filename) throws UnsupportedEncodingException {
if(agent.contains("MSIE")){//IE
filename= URLEncoder.encode(filename,"utf-8");
filename= filename.replace("+"," ");
} else if (agent.contains("Firefox")) {
Base64.Encoder encoder = Base64.getEncoder();
filename = "?utf-8?B?"+ encoder.encodeToString(filename.getBytes("utf-8"))+"?=";
}else {
filename = URLEncoder.encode(filename,"utf-8");
}
return filename;
}
}