最近在做导出数据的功能. 碰到浏览器兼容问题。
同样的接口在谷歌、IE 没有问题 ,Safari 文件名就会乱码. 可能是 他们内边的人喜欢使用ISO8859-1所以只能根据浏览器的代理做个判断
private static void prepareResponds(String fileName, HttpServletResponse response, HttpServletRequest request) throws IOException {String ua = request.getHeader("User-Agent").toLowerCase();if (ua.indexOf("macintosh") > -1 && ua.indexOf("chrome") < 0) {fileName = new String(fileName.getBytes(), "iso8859-1");} else {fileName = URLEncoder.encode(fileName, "utf-8");}response.setContentType("applicatoin/octet-stream");response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ExcelTypeEnum.XLSX.getValue());}