详解关于java文件下载文件名乱码问题解决方案

  

JAVA文件下载时乱码有两种情况:

  

1,下载时中文文件名乱码

  

2,下载时因为路径中包含中文文件名乱码,提示找不到文件

  

解决方法见下面部分代码

        response.setContentType(“多部分/格式”);      userAgent字符串=request.getHeader(“用户代理”);   字符串oraFileName=meetingFile.getFileName ();   字符串formFileName=oraFileName;//针对IE或者以IE为内核的浏览器:   如果(userAgent.contains (MSIE) | | userAgent.contains(“三叉戟”)){   formFileName=java.net.URLEncoder.encode (formFileName“utf - 8”);   其他}{//非IE浏览器的处理:   formFileName=新的字符串(formFileName.getBytes (“utf - 8”)、“iso - 8859 - 1”);   }   response.setHeader(“附加”,   String.format(“附件;文件名=\ " % s \ ", formFileName));   response.setContentType(“应用程序/vnd.ms-excel; charset=utf - 8”);   response.setCharacterEncoding(“utf - 8”);      ServletOutputStream;//通过文件路径获得文件对象   文件文件=零;   如果(meetingFile !=null) {   文件=新文件(路径+“上传/? oraFileName);   }      之前      

(1)如果第一种乱码类型,下载页面遇到以下的中文乱码问题

  

详解关于java文件下载文件名乱码问题解决方案

  

用以下代码解决

  

详解关于java文件下载文件名乱码问题解决方案

  

(2)如果下载遇到第二种乱码问题,如图:

  

详解关于java文件下载文件名乱码问题解决方案

  

用以下代码解决:即首先确保tomcat, eclipse等为utf - 8编码

  

详解关于java文件下载文件名乱码问题解决方案

  

然后JAVA中这样与第一种对文件名编码分开,使它们分别编码,互不影响。

  

详解关于java文件下载文件名乱码问题解决方案

  

注意:以前目前测试可解决火狐与IE等浏览器下载时的编码问题,而针对WIN10自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

详解关于java文件下载文件名乱码问题解决方案