问题
最近做的一个数据导入项目,在chrome浏览器中导出的excel文件名没有出现中文乱码的情况,在测试IE浏览器的时候,导出的文件名乱码了
解决
这个是原来的代码
try {
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + new String((edTemplate.getTemplateName() + "导入模板").getBytes(), "ISO-8859-1") + ".xls");
OutputStream os = response.getOutputStream();
workbook.write(os);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
return ResponseMsgUtil.failure();
}
在new String((edTemplate.getTemplateName() + "导入模板").getBytes(), "ISO-8859-1")
的getBytes()
这个方法里加上一个编码
修改后的代码
try {
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + new String((edTemplate.getTemplateName() + "导入模板").getBytes("gb2312"), "ISO-8859-1") + ".xls");
OutputStream os = response.getOutputStream();
workbook.write(os);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
return ResponseMsgUtil.failure();
}