需要使用两种不同编码方式来处理,在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);
原文地址:http://www.cnblogs.com/dule/archive/2012/04/20/2459762.html