IE下载文件时,中文文件名乱码问题
经排查,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下载文件时,中文文件名乱码问题相关推荐
- 解决浏览器下载文件时中文文件名乱码的问题
解决浏览器下载文件时中文文件名乱码的问题 很多时候我们需要在后台为前端提供文件下载的功能,但是当文件名中有中文时我们不能直接将文件名返回,需要对中文的文件名进行处理后再返回. 一.文件下载contro ...
- 下载文件时,文件名乱码。
Unicode网页中上传下载文件时发生文件名乱码的问题 最 近有一个需要支持unicode的项目在上传和下载文件时遇到文件名乱码问题. 项目背景, 这个项目关键之处在于需要支持unicode以及支持M ...
- IE11下载文件时出现文件名乱码
单位上新系统,需要安装IE 11,但随后很多使用人员报告邮件附件下载会出现乱码.经百度后问题解决. 一.组策略修改方式: 1.在桌面使用快捷键win+r,输入gpedit.msc,打开组策略对话框 2 ...
- 下载文件时设置文件名的方法
在阿里云云存储OSS中下载文件时设置文件名的办法: import java.io.File; import java.io.FileInputStream; import java.io.IOExce ...
- 处理下载文件时中文乱码
/** * 下载文件时,针对不同浏览器,进行附件名的编码 * @param filename 下载文件名 * @param agent 客户端浏览器(通过request.getHeader(" ...
- linux解压文件名乱码,linux下解压zip文件时,文件名乱码的解决(转载)
转自:http://blog.sina.com.cn/s/blog_6261f8690101c1gx.html windows下的zip文件,在linux下解压时,经常会出现文件名乱码的情况. 主要原 ...
- java解压_Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)
JDK中自带的ZipOutputStream在压缩文件时,如果文件名中有中文,则压缩后的 zip文件打开时发现中文文件名变成乱码. 解决的方法是使用apache-ant-zip.jar包(见附件)中的 ...
- Zuul上传文件,中文文件名乱码解决办法
问题描述 在项目中又一个上传文件的oss服务,直接调用服务的上传文件成功,如果经过网关zuul服务,上传中文名字的文件,文件名会出现乱码,最终导致上传失败,如果上传英文名字的文件,没有任何问题.怀疑网 ...
- HTML 表单 存为EXCEL文件时 中文显示乱码
在做宣传品发放系统时,需求要把数据库查询的记录生成表单并转存excel文件. 在转存的EXCEL文件中文显示乱码,表格和其他字符正常,检查后发现是创建EXCEL文件打开模式不对 之前: myfile ...
- linux vi 打开乱码,liunx 中使用vim 打开 txt文件时 中文出现乱码的解决办法
出现乱码,说明软件读取文件的编码方式和软件保存文件的编码方式不同,只要二者相同了,就不会出现乱码,所以,解决乱码问题,就是实现二者统一的过程: 此次系统的默认的编码方式为utf-8,而我的vim初始使 ...
最新文章
- WPF的二维绘图(二)——几何图形Geometry
- 时间较宽裕的时候,选择有挑战性的路
- 使用NDK过程中出现“Unresolved inclusion jni.h”
- 【Apache JMeter】JMeter接口压测实例
- python字符编码解码,文件编码解码。
- 白山搜索引擎优化收费_在网络推广中,SEO排名优化是成本最低的方式
- Python实现按照指定要求逆序输出一个数字的方法
- 利萨茹(Lissajous)曲线动画演示
- Vue 下载文件需要token设置
- 利用机器学习方法确定各个特征的权重
- Word公式编辑大括号内公式对齐方法
- 网站快照被劫持解决办法:织梦程序
- 职业教育迎来新的发展期
- 【校招VIP】前端专业课考点之tcp与udp
- lnk1120如何解决_fatal error LNK1120: 6 unresolved externals问题怎么解决?
- Nodejs内存溢出原因
- 常见的比较二进制工具有哪些
- CC2530 CC2530F256RHAR 一款ZigBee SOC芯片
- outlook express 邮件附件都带有att000xxx.htm 附件?
- 2014校园招聘笔试题的那些事儿