IE浏览器中浏览阿里云OSS的object URL中文文件名乱码
1. 在object的http头中有一个参数为Content-Disposition,该参数指定该Object被下载时的名称,格式如:attachment;filename=123.jpeg
具体用户可以参考如下链接https://help.aliyun.com/document_detail/oss/api-reference/object/PutObject.html
2. filename用URL编码后写入
例子:Content-Disposition的filename值的编码一开始没有明确的标准,所以各个浏览器实现都不大一样,最新的浏览器大都遵循了rfc5987标准。
所以当filename的包含非US-ASCII码时,可以采用这方方式:attachment; filename=Mary+Meeker%ef%bc%9a2015%e2%80%9c%e4%ba%92%e8%81%94%e7%bd%91%e5%a5%b3%e7%9a%87%e6%8a%a5%e5%91%8a%e2%80%9d%e4%b8%ad%e6%96%87%e7%89%88.pdf;filename*=UTF-8''Mary+Meeker%ef%bc%9a2015%e2%80%9c%e4%ba%92%e8%81%94%e7%bd%91%e5%a5%b3%e7%9a%87%e6%8a%a5%e5%91%8a%e2%80%9d%e4%b8%ad%e6%96%87%e7%89%88.pdf
其中:Mary+Meeker%ef%bc%9a2015%e2%80%9c%e4%ba%92%e8%81%94%e7%bd%91%e5%a5%b3%e7%9a%87%e6%8a%a5%e5%91%8a%e2%80%9d%e4%b8%ad%e6%96%87%e7%89%88.pdf 为URLEncode的结果。
应该在大多数的浏览器下可以工作,最新版本的firefox,ie,safari,chrome下验证通过,但是不能保证所有的浏览器都work。
我有话说: