项目中有用到文件下载功能,之前在处理下载时对IE浏览器下文件下载名进行过处理,测试也没有问题,
但是功能上线后,业务反馈IE11文件下载文件名依然乱码。打印User-Agent字符串如下:
IE11 User-Agent字符串:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
IE6~IE10版本的User-Agent字符串:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.0; Trident/6.0)

IE浏览器在IE11,更改了User-Agent字符串格式内容,所以针对IE11,做一下判断即可:

//下载文件,并处理文件名乱码public void downloadFile(HttpServletRequest request,HttpServletResponse response){String path = request.getSession().getServletContext().getRealPath("/upload/文档1.doc");// path是根据日志路径和文件名拼接出来的File file = new File(path);//获取日志文件名称String filename = file.getName();try {//判断是否是IE11Boolean flag= request.getHeader("User-Agent").indexOf("like Gecko")>0;if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") >0||flag){filename = URLEncoder.encode(filename, "UTF-8");//IE浏览器}else {//先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,//这个文件名称用于浏览器的下载框中自动显示的文件名filename = new String(filename.replaceAll(" ", "").getBytes("UTF-8"), "ISO8859-1");//firefox浏览器//firefox浏览器User-Agent字符串: //Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0}InputStream fis = new BufferedInputStream(new FileInputStream(path));byte[] buffer;buffer = new byte[fis.available()];fis.read(buffer);fis.close();response.reset();response.addHeader("Content-Disposition", "attachment;filename=" +filename);response.addHeader("Content-Length", "" + file.length());OutputStream os = response.getOutputStream();response.setContentType("application/octet-stream");os.write(buffer);// 输出文件os.flush();os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

java IE11浏览器文件下载的文件名乱码相关推荐

  1. java文件下载出现文件名乱码解决办法

    java文件下载出现文件名乱码解决办法 //IE.chrom.Firefox文件中文乱码问题public String processFileName(HttpServletRequest reque ...

  2. 解决文件下载在火狐浏览器出现中文文件名乱码的方法

    解决文件下载在火狐浏览器出现中文文件名乱码的方法 参考文章: (1)解决文件下载在火狐浏览器出现中文文件名乱码的方法 (2)https://www.cnblogs.com/zeng1994/p/739 ...

  3. php文件下载IE文件名乱码问题

    一直用chrome浏览器,没发现问题.今天用ie6,发现文件下载时文件名乱码,ie下迅雷下载文件名也是乱码.网上查了下说在ie下需要使用urlencode编码一下,我试了下 header('Conte ...

  4. java文件下载的文件名乱码问题的解决

    原文转自:http://blog.csdn.net/lian_zhihui1984/article/details/6835976 在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇 ...

  5. 解决各个浏览器文件下载出现文件名中文乱码问题

    /*** 解决各个浏览器文件下载中文乱码问题* @param filename* @return*/public static String getFileName(HttpServletReques ...

  6. 解决Edge浏览器下载文件文件名乱码问题

    文件名中含有中文的文件下载,用谷歌.火狐.搜狗等浏览器都可以正常下载,但使用Windows自带的edge浏览器下载时文件名出现乱码问题.如下: 解决方案: 在输出头中的文件名进行urlencode编码 ...

  7. 解决浏览器导出Excel文件名乱码问题

    导出的时候需要设置: response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_c ...

  8. 文件下载中文文件名乱码问题解决

    1.首先后台接收后,多文件名进行再编码 filePath = new String(filePath.getBytes(),"utf-8");//有没有这句话 2.注意设置浏览器, ...

  9. 如何用Java实现浏览器文件下载功能

    一.了解ServletContext对象 代表整个web应用,可以和程序的容器(服务器)来通信. 1. 概念 ServletContext是Servlet中最大的一个接口,呈现了web应用的Servl ...

  10. 解决火狐浏览器下载文件文件名乱码的问题

    第一种解决方案: if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {//IE内 ...

最新文章

  1. 大学最重要的七项学习
  2. android token过期怎么跳转登录_用sa-token轻松解决网站权限验证
  3. 如何做好Code Review
  4. ellipsis省略号表示多余内容
  5. 【渝粤教育】国家开放大学2018年秋季 0053-21T移动通信技术与移动通信设备 参考试题
  6. 第七章 Android嵌入式组态软件
  7. 价值1680元的python实战全套教学视频
  8. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--蜂鸣器封装(十七)
  9. 自动驾驶-激光雷达预处理/特征提取
  10. udp超过mtu长度 linux,TCP UDP 数据包长度(MSS)总结
  11. 蓝桥杯——等差素数列(c语言)
  12. otsu阈值分割算法原理_OTSU阈值分割
  13. 红帽linux安装要钱吗,红帽linux安装
  14. c语言数独思路介绍,【数独运算器】,关于数独的解题思路,已经改进。
  15. 连续支付(周期扣款)功能开发及注意事项
  16. eclispe中只能输入英文,无法调用输入法
  17. 机器学习算法平台alink_阿里正式开源通用算法平台Alink,“双11”将天猫推荐点击率提升4...
  18. 【算法】欧拉函数公式证明
  19. Angular2+ 面试题集锦
  20. 落单的数(落单的数 落单的数 II 落单的数 III)

热门文章

  1. 如何写项目文档?项目文档有哪些?
  2. loongson PMON使用
  3. 网络运维系列:Ubnt ER-X初始化和开启硬件NAT
  4. er ubnt x设置教程_ubnt edgerouter er-x 路由器怎么设置
  5. UCOS操作系统——任务的挂起与恢复(四)
  6. python成语接龙代码_Python实现成语接龙
  7. MT7621搭载openwrt实现U盘等设备自动挂载
  8. 好家伙!AI内容审核这么强!
  9. 基于51单片机的直流电机正反转及控速+proteus仿真图
  10. 位移密码加密、解密matlab实现