中文下载乱码解决方案:
判断User-agent
if (agent.contains("MSIE")) {
// IE浏览器
filename = URLEncoder.encode(filename, "utf-8");
filename = filename.replace("+", " ");
} else if (agent.contains("Firefox")) {
// 火狐浏览器
BASE64Encoder base64Encoder = new BASE64Encoder();
filename = "=?utf-8?B?"
+ base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
} else {
// 其它浏览器
filename = URLEncoder.encode(filename, "utf-8");
}
//下载文件的类型推断 ---- 客户端通过MIME区分
response.setContentType(this.getServletContext().getMimeType(filename));
//设置为下载 不直接打开
response.setHeader("Content-Disposition","attachment;filename="+filename);