用下面这种方式,ie,chrome没问题,但是safari有问题
private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf8");
response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");
response.addHeader("Access-Control-Expose-Headers","Content-disposition");
return response.getOutputStream();
}
用下面这种方式在ie,chrome,safari浏览器下都是ok的,中文名称都能正常显示:
private static OutputStream\ngetOutputStream(String fileName, HttpServletResponse response) throws Exception\n{
fileName = URLEncoder.encode(fileName,\n"UTF-8");
\nresponse.setContentType("application/x-msdownload");
\nresponse.setCharacterEncoding("iso-8859-1");
\nresponse.setHeader("Content-Disposition",\n"attachment;filename*=UTF-8''" + fileName+".xlsx");
\nresponse.addHeader("Access-Control-Expose-Headers","Content-disposition");
return response.getOutputStream();
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
}