当前位置: 移动技术网 > IT编程>开发语言>Java > 详解关于java文件下载文件名乱码问题解决方案

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

2020年03月09日  | 移动技术网IT编程  | 我要评论

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

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

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

解决方法见下面部分代码

response.setcontenttype("multipart/form-data");

      string useragent = request.getheader("user-agent");
      string orafilename = meetingfile.getfilename();
      string formfilename=orafilename;
       
      // 针对ie或者以ie为内核的浏览器:
      if (useragent.contains("msie") || useragent.contains("trident")) {
        formfilename = java.net.urlencoder.encode(formfilename, "utf-8");
      } else {
        // 非ie浏览器的处理:
        formfilename = new string(formfilename.getbytes("utf-8"), "iso-8859-1");
      }
      response.setheader("content-disposition",
          string.format("attachment; filename=\"%s\"", formfilename));
      response.setcontenttype("application/vnd.ms-excel;charset=utf-8");
      response.setcharacterencoding("utf-8");
          
            servletoutputstream out;
      // 通过文件路径获得file对象
      file file = null;
      if (meetingfile != null) {
        file = new file(path + "upload/"+orafilename);
      }

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

用以下代码解决

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

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

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

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网