详细解决java文件下载文件名乱码问题

电脑杂谈  发布时间:2020-04-29 18:06:26  来源:网络整理

下载下来的文件名乱码_android下载文件乱码_下载txt文件乱码怎么解决

更新时间: 2020年1月14日10:07:12作者: 程序猿001

本文主要介绍针对Java文件中文件名下载乱码问题的详细解决方案. 本文中的示例代码非常详细,对每个人的学习或工作都有一定的参考学习价值. 需要它的朋友可以关注以下内容下载下来的文件名乱码,让我们一起学习和学习

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

android下载文件乱码_下载txt文件乱码怎么解决_下载下来的文件名乱码

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

2,由于该路径在下载过程中包含中文文件名乱码,因此提示找不到该文件

解决方案显示在下面的代码中

下载txt文件乱码怎么解决_android下载文件乱码_下载下来的文件名乱码

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)如果是第一种乱码,则下载页面遇到以下中文乱码问题

下载下来的文件名乱码_下载txt文件乱码怎么解决_android下载文件乱码

使用以下代码来解决

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

下载txt文件乱码怎么解决_android下载文件乱码_下载下来的文件名乱码

使用以下代码解决: 首先,确保tomcat,eclipse等以UTF-8编码

然后在Java中,文件名编码与第一个分开,因此它们被分别编码而不会互相影响.

注意: 先前的测试可以解决下载Firefox和IE等浏览器时的编码问题,并且WIN10随附的浏览器仍会时不时出现乱码. 谁想要一种与所有浏览器兼容的好方法?谢谢您与我分享.

以上是本文的全部内容,希望对大家的学习有所帮助,并希望您支持脚本编写室.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-193236-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...