需要使用两种不同编码方式来处理,在Firefox 3.6,IE 8以及google下测试通过:
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);
String agent = request.getHeader("User-Agent");
boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);
if (isMSIE) {
} else {
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);