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自带的浏览器不时仍会出现乱码现象,谁要是有好的能兼容所有浏览器的方法希望能与本人分享,感激不尽。

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

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

  1. java访问修饰符详解——学java,零基础不怕,不只要理论,更要实践+项目,a href=http://www.bjweixin.com太原维信科技提供 /a...

    java访问修饰符详解--学java,零基础不怕,不只要理论,更要实践+项目 <a href=http://www.bjweixin.com>太原维信科技提供 </a> pub ...

  2. Java API源码在哪里找_详解查看JAVA API及JAVA源码的方法

    在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码 对于java的api,一般 ...

  3. Java高并发编程详解系列-Java线程入门

    根据自己学的知识加上从各个网站上收集的资料分享一下关于java高并发编程的知识点.对于代码示例会以Maven工程的形式分享到个人的GitHub上面.   首先介绍一下这个系列的东西是什么,这个系列自己 ...

  4. idea看java版本设置_详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)...

    详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用) 有时候需要看Java源码,但是 Java 1.7 和 Java 1.8的差别的关系,有时候你想查看不同jd ...

  5. java 引用传递_详解java的值传递、地址传递、引用传递

    详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...

  6. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  7. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  8. java用redis缓存的步骤_详解在Java程序中运用Redis缓存对象的方法|chu

    这段时间一直有人问如何在Redis中缓存Java中的List 集合数据,其实很简单,常用的方式有两种: 1. 利用序列化,把对象序列化成二进制格式,Redis 提供了 相关API方法存储二进制,取数据 ...

  9. python java混合编程_详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

最新文章

  1. Swift - 选择框(UIPickerView)的用法
  2. CentOS中怎样卸载旧版本Git并安装高版本Git
  3. Filter案例之敏感词过滤和代理模式
  4. mybatis 注解传入 list 集合​​​​​​​
  5. SurfaceFlinger与Surface概述
  6. CSS3伪元素、伪类选择器
  7. 成功解决 ProxyError: Conda cannot proceed due to an error in your proxy configuration
  8. 自己动手编译OpenJDK
  9. How to remove k__BackingField from Json data
  10. WebKit技术内幕(笔记)
  11. 微信小程序 下拉刷新 性能优化 参考饿了么小程序首页列表加载
  12. 连接腾讯云云服务器的mysql
  13. 知识| 四种渲染到底是啥?终于有人讲明白了(上)
  14. nginx 二 配置conf
  15. 2019-08-01软件工程总结
  16. 来自星星的宝贝,我要如何发现你?
  17. c语言中汉字编码,【C语言学习】C语言汉字编码。。。C语言中汉字的输入
  18. MJT's Blog
  19. 网页设计中的灰色调配色技巧
  20. 计算机教师信息化大赛作品,全国“xx杯”计算机专业类说课大赛优秀作品:信息化色彩搭配训练说课课件.ppt...

热门文章

  1. EasyVS -- 快速整理region的Visual Studio扩展
  2. 在GNS3中使用SecureCRT6.1出错的解决方案
  3. PTA:6-2顺序表操作集(20分)
  4. python函数 模块先加载到内存后执行_Python从内存中使用编译后的模块
  5. 机器学习 - [源码实现决策树小专题]决策树如何分裂以拓展节点(以及在不允许调用sklearn等库的源代码实现)
  6. AcWing 1884. COW(前缀和)
  7. java bit mask_位掩码(Bit Mask)的应用
  8. SparkSql性能测试案例
  9. matlab将某点标红,Draw-a-rectangle-matlab 本程序在图像上指定位置话红色的矩形框作为标记 - 下载 - 搜珍网...
  10. jdbc executebatch 非事务_面试:Mybatis事务请讲解一下?