IE浏览器中浏览阿里云OSS的object URL中文文件名乱码

作者阿里云代理 文章分类 分类:新闻快递 阅读次数 已被围观 3295

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。

本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>

我有话说: