Excel导出文件名中文乱码问题

方案:使用 request.getHeader("USER-AGENT") 判断浏览器的类型

response.setContentType("application/msexcel");

String excfileName = "";
try {
String agent = (request.getHeader("USER-AGENT")).toLowerCase();
if (StringUtils.contains(agent, "mise")) {
//IE浏览器
excfileName = fileName;
//excfileName = URLEncoder.encode(fileName,"UTF8");
} else if (StringUtils.contains(agent, "chrome") || StringUtils.contains(agent, "firefox")) {
//google,火狐浏览器
excfileName = new String(fileName.getBytes("GB2312"), "ISO-8859-1");
} else if (StringUtils.contains(agent, "safari")) {
excfileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
} else {
excfileName = URLEncoder.encode(fileName, "UTF8");
}
} catch (UnsupportedEncodingException e) {
log.error("encod chinese error ,now set En name", e);
codedFileName = "waybill";
}
response.setHeader("Content-Disposition", "attachment;filename=" + excfileName + ".xls");
posted @ 2017-05-12 08:49  javaeelwh  阅读(1054)  评论(0)    收藏  举报