经排查,Content-Disposition中的filename进行了两次URL转码。以汉字为例:

  • 第一次转码,漫变为%E6%BC%AB。
  • 第二次转码,%E6%BC%AB变为%25E6%25BC%25AB(第二次转码时,因为%是特殊字符,所以会转为%25)。

前端下载时:

  • Chrome浏览器可以自动执行两次URL解码,所以下载的文件名是正常的。
  • IE浏览器只执行一次URL解码,所以下载的文件名是第一次编码的结果(%E6%BC%AB)(版本8,10验证问题存在)。
  • 火狐好像也不行。

解决方案是在返回给前端前对Content-Disposition中的filename先进行一次URL解码(实际我是对filename这个参数进行了解码,因为文件服务器是用的第三方的。)。

此外,当文件名为中文(未执行URL编码)字符串时,IE下载也为乱码,因为IE对中文字符串又执行了一次URL解码。解决方案是将中文字符串进行URL编码。

所以,总结下来,关键的问题就在于IE浏览器对filename只进行一次解码,而chrome对这种情况是进行了优化的。

IE下载文件时,中文文件名乱码问题相关推荐

  1. 解决浏览器下载文件时中文文件名乱码的问题

    解决浏览器下载文件时中文文件名乱码的问题 很多时候我们需要在后台为前端提供文件下载的功能,但是当文件名中有中文时我们不能直接将文件名返回,需要对中文的文件名进行处理后再返回. 一.文件下载contro ...

  2. 下载文件时,文件名乱码。

    Unicode网页中上传下载文件时发生文件名乱码的问题 最 近有一个需要支持unicode的项目在上传和下载文件时遇到文件名乱码问题. 项目背景, 这个项目关键之处在于需要支持unicode以及支持M ...

  3. IE11下载文件时出现文件名乱码

    单位上新系统,需要安装IE 11,但随后很多使用人员报告邮件附件下载会出现乱码.经百度后问题解决. 一.组策略修改方式: 1.在桌面使用快捷键win+r,输入gpedit.msc,打开组策略对话框 2 ...

  4. 下载文件时设置文件名的方法

    在阿里云云存储OSS中下载文件时设置文件名的办法: import java.io.File; import java.io.FileInputStream; import java.io.IOExce ...

  5. 处理下载文件时中文乱码

    /** * 下载文件时,针对不同浏览器,进行附件名的编码 * @param filename 下载文件名 * @param agent 客户端浏览器(通过request.getHeader(" ...

  6. linux解压文件名乱码,linux下解压zip文件时,文件名乱码的解决(转载)

    转自:http://blog.sina.com.cn/s/blog_6261f8690101c1gx.html windows下的zip文件,在linux下解压时,经常会出现文件名乱码的情况. 主要原 ...

  7. java解压_Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)

    JDK中自带的ZipOutputStream在压缩文件时,如果文件名中有中文,则压缩后的 zip文件打开时发现中文文件名变成乱码. 解决的方法是使用apache-ant-zip.jar包(见附件)中的 ...

  8. Zuul上传文件,中文文件名乱码解决办法

    问题描述 在项目中又一个上传文件的oss服务,直接调用服务的上传文件成功,如果经过网关zuul服务,上传中文名字的文件,文件名会出现乱码,最终导致上传失败,如果上传英文名字的文件,没有任何问题.怀疑网 ...

  9. HTML 表单 存为EXCEL文件时 中文显示乱码

    在做宣传品发放系统时,需求要把数据库查询的记录生成表单并转存excel文件. 在转存的EXCEL文件中文显示乱码,表格和其他字符正常,检查后发现是创建EXCEL文件打开模式不对 之前: myfile ...

  10. linux vi 打开乱码,liunx 中使用vim 打开 txt文件时 中文出现乱码的解决办法

    出现乱码,说明软件读取文件的编码方式和软件保存文件的编码方式不同,只要二者相同了,就不会出现乱码,所以,解决乱码问题,就是实现二者统一的过程: 此次系统的默认的编码方式为utf-8,而我的vim初始使 ...

最新文章

  1. WPF的二维绘图(二)——几何图形Geometry
  2. 时间较宽裕的时候,选择有挑战性的路
  3. 使用NDK过程中出现“Unresolved inclusion jni.h”
  4. 【Apache JMeter】JMeter接口压测实例
  5. python字符编码解码,文件编码解码。
  6. 白山搜索引擎优化收费_在网络推广中,SEO排名优化是成本最低的方式
  7. Python实现按照指定要求逆序输出一个数字的方法
  8. 利萨茹(Lissajous)曲线动画演示
  9. Vue 下载文件需要token设置
  10. 利用机器学习方法确定各个特征的权重
  11. Word公式编辑大括号内公式对齐方法
  12. 网站快照被劫持解决办法:织梦程序
  13. 职业教育迎来新的发展期
  14. 【校招VIP】前端专业课考点之tcp与udp
  15. lnk1120如何解决_fatal error LNK1120: 6 unresolved externals问题怎么解决?
  16. Nodejs内存溢出原因
  17. 常见的比较二进制工具有哪些
  18. CC2530 CC2530F256RHAR 一款ZigBee SOC芯片
  19. outlook express 邮件附件都带有att000xxx.htm 附件?
  20. 2014校园招聘笔试题的那些事儿

热门文章

  1. python关于二手房的课程论文_用python分析链家二手房信息
  2. 怎么看空调定时成功_空调定时怎么设置
  3. 生日祝福电子贺卡html5,电子生日祝福卡
  4. 3分钟带你了解Web前端开发工程师需要掌握什么?
  5. 9-24 服务器连接一体机部署
  6. git memery 后 push到远程,如何回滚
  7. Relion在K1 Power Linux实践
  8. WZOI-264合唱队形
  9. 三、面向对象(高琪java300集+java从入门到精通笔记)
  10. 影像信息提取之——DEM提取