java导出excel文件名称乱码问题解决

用下面这种方式,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 getOutputStream(String fileName, HttpServletResponse response) throws Exception {

        fileName = URLEncoder.encode(fileName, "UTF-8");

        response.setContentType("application/x-msdownload");

        response.setCharacterEncoding("iso-8859-1");

        response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + fileName+".xlsx");

        response.addHeader("Access-Control-Expose-Headers","Content-disposition");

        return response.getOutputStream();

 

    }

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):