如何在HTTP中对内容配置标头的文件名参数进行编码?
希望强制资源成为下载而不是直接渲染在Web浏览器中,发出Content-Disposition
表单的HTTP响应中的标头:
Content-Disposition: attachment; filename=FILENAME
这个filename
参数可用于建议浏览器下载资源的文件的名称。RFC 2183(内容处理)然而,在第2.3节文件名只能使用US-ASCII字符的文件名参数:
当前[rfc 2045]语法将参数值(因此是内容配置文件名)限制为US-ASCII。我们认识到在文件名中允许任意字符集是非常可取的,但是定义必要的机制超出了本文档的范围。
然而,有经验性的证据表明,今天大多数流行的Web浏览器似乎允许非US-ASCII字符,但是(由于缺乏标准)在文件名的编码方案和字符集规范上存在分歧。问题是,如果文件名“naivefile”(没有引号,第三个字母为U+00EF)需要编码到内容处理头中,那么流行的浏览器所使用的各种方案和编码是什么?
为了这个问题,流行浏览器存在:
- 火狐
- Internet资源管理器
- 狩猎
- 谷歌Chrome
- 歌剧