Java: IE & Firefox下载文件中文乱码的兼容代码
需要使用两种不同编码方式来处理,在Firefox 11和IE 8下测试通过:
HttpServletRequest request = ServletActionContext.getRequest();
String agent = request.getHeader("User-Agent");
boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);
if (isMSIE) {
filename= URLEncoder.encode(filename, "UTF-8");
} else {
filename= new String(filename.getBytes("UTF-8"), "ISO-8859-1");
}
response.setHeader("Content-Disposition", "attachment; filename=" + filename);