想要强制 下载 资源而不是直接在 Web 浏览器中 呈现Content-Disposition的 Web 应用程序会在表单的 HTTP 响应中发出一个标头:
Content-Disposition
Content-Disposition: attachment; filename= _FILENAME_
该filename参数可用于建议浏览器将资源下载到的文件的名称。然而, RFC 2183(Content-Disposition)在第 2.3 节(文件名参数)中声明文件名只能使用 US-ASCII 字符:
filename
当前 [RFC 2045] 语法将参数值(以及因此的 Content-Disposition 文件名)限制为 US- ASCII。我们认识到允许在文件名中使用任意字符集是非常可取的,但是定义必要的机制超出了本文档的范围。
然而,有经验证据表明,当今大多数流行的 Web 浏览器似乎允许非 US-ASCII 字符(由于缺乏标准)在文件名的编码方案和字符集规范上存在分歧。那么问题是,如果需要将文件名“渘a茂vefile”(不带引号且第三个字母是U+00EF)编码到Content- Disposition标头中,流行浏览器采用的各种方案和编码是什么? ?
在提议的RFC 5987 “超文本传输协议 (HTTP) 标头字段参数的字符集和语言编码”中对此进行了讨论,包括浏览器测试和向后兼容性的链接。
RFC 2183表明此类标头应根据RFC 2184进行编码,该标准已被RFC 2231废弃,由上述 RFC 草案涵盖。