Safari浏览器导出数据(excel)文件名乱码, 无后缀问题
2016-11-08 00:00
253 查看
摘要: 谷歌浏览器、Safari浏览器导出excel数据 文件乱码
最近在做导出数据的功能. 碰到浏览器兼容问题。
同样的接口在谷歌、IE 没有问题 ,Safari 文件名就会乱码. 深究考虑 可能是 他们内边的人喜欢使用ISO8859-1 (苹果就是这么 NB,不管中国多大市场 也不用UTF-8编码)
所以只能根据浏览器的代理做个判断, 就这么简单点事. 百度了好久. 在这里记录下,同样犯错误的同仁参考下。
最近在做导出数据的功能. 碰到浏览器兼容问题。
同样的接口在谷歌、IE 没有问题 ,Safari 文件名就会乱码. 深究考虑 可能是 他们内边的人喜欢使用ISO8859-1 (苹果就是这么 NB,不管中国多大市场 也不用UTF-8编码)
所以只能根据浏览器的代理做个判断, 就这么简单点事. 百度了好久. 在这里记录下,同样犯错误的同仁参考下。
//解决 苹果浏览器乱码问题 - val ua = request.getHeader("User-Agent").toLowerCase logger.info("ua:%s", ua) val filename = if (ua.indexOf("macintosh") > -1 && ua.indexOf("chrome") < 0) { logger.info("浏览器: safari") new String(file.getName().getBytes, "iso8859-1") } else { URLEncoder.encode(file.getName(), "utf-8") } //重置输出流 response.reset(); response.addHeader("Content-Disposition", "attachment;filename=" + filename) //设置文件名 response.addHeader("Content-Length", file.length.toString) //设置下载文件大小 response.setContentType("application/vnd.ms-excel;charset=utf-8") //设置文件类型 //读取文件数据 val fis = new FileInputStream(fileName) val outPutStream = response.getOutputStream if (fis.available != 0) { response.setStatus(200) } IOUtils.copy(fis, outPutStream) fis.close response.end
相关文章推荐
- PHP从数据库导出数据到excel,无插件(解决中文以及法语乱码问题)
- Java中Excel导出时文件名乱码问题的解决
- Excel导出文件名乱码问题
- sl3中的DataGrid中的数据导出到Excel中 使用csv格式 解决中文是乱码的问题
- B/S导出Excel文件名IE浏览器下乱码问题
- 设计能够导出所有记录到excel的分页(使用AspNetPager)页面,并解决excel文件名中文乱码问题
- 导出EXCEL中文文件名乱码问题
- displaytag导出excel数据时的乱码问题
- 将GridView中的数据导出到Excel中下载并且解决乱码的问题
- 【Excel】java 导出Excel 中文文件名乱码不显示问题
- 将GridView中的数据导出到Excel中下载并且解决乱码的问题
- php将mysql数据表(含中文数据)导出生成excel表,快速生成且解决中文乱码问题。
- 解决在IE下使用PHPExcel导出时的文件名中文乱码问题
- 火狐浏览器导出EXCEL 表格,文件名乱码问题
- js把数据导出成excel的中文乱码问题解决
- Flex 导出excel时文件名乱码的问题
- 导出EXCEL中文文件名乱码问题
- js导出excel, 并解决文件名是随机的问题,兼容多个浏览器
- java 导出excel文件名乱码处理
- PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解,解决PHP下载文件名中文乱码