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

作者:程序猿001 时间:2021-07-05 15:27:04 

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

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

用以下代码解决

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

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

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

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

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

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

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

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

来源:https://www.cnblogs.com/zhaoyan001/p/9012750.html

标签:java,下载文件名,乱码
0
投稿

猜你喜欢

  • SpringCloud Feign实现微服务之间相互请求问题

    2022-08-29 08:20:53
  • Java基于Tcp协议的socket编程实例

    2022-03-08 00:04:13
  • DevExpress实现自定义TreeListNode的Tooltip的方法

    2022-08-19 05:39:47
  • Java使用BIO和NIO进行文件操作对比代码示例

    2023-04-18 16:14:21
  • 如何从UA分辨出Android设备类型

    2023-09-03 00:37:44
  • 浅析Java异常处理中断言的使用

    2023-07-05 23:50:03
  • 用命令行编译java并生成可执行的jar包方法

    2023-01-15 23:21:35
  • 最详细的文件上传下载实例详解(推荐)

    2021-12-12 08:18:13
  • WPF+SkiaSharp实现自绘弹幕效果

    2022-09-30 09:52:38
  • 详细聊聊SpringBoot中动态切换数据源的方法

    2023-11-24 04:07:49
  • C#使用foreach语句遍历二维数组的方法

    2023-01-19 22:06:05
  • javascript开发随笔3 开发iframe富文本编辑器的一点体会

    2021-09-25 09:41:28
  • Java实现排队论的原理

    2023-11-23 02:19:24
  • IDEA搭建dubbo项目的过程及存在的问题

    2023-10-15 17:56:53
  • Android实现登录注册功能封装

    2023-03-20 08:46:46
  • Java上传文件错误java.lang.NoSuchMethodException的解决办法

    2023-11-10 13:15:43
  • SpringBoot 如何实现异步编程

    2023-04-15 13:45:43
  • Java如何去掉指定字符串的开头的指定字符

    2022-05-23 13:28:31
  • java poi设置生成的word的图片为上下型环绕以及其位置的实现

    2023-05-23 03:12:08
  • Java实现设计模式之责任链模式

    2023-12-09 21:02:12
  • asp之家 软件编程 m.aspxhome.com