在尝试使用与 Content-Disposition 编码相关的西班牙波浪线文件时,我遇到了一个问题。
文件名为“qué hacés ahora.docx”
到目前为止,提供文件的 ASP.NET MVC 方式添加了这个头,它只在 Firefox 中工作正常:
Content-Disposition: attachment; filename*=UTF-8''qu%C3%A9%20hac%C3%A9s%20ahora.docx
我在控制器中使用:
return File(path, "application/octet-stream", originalNameWithAccents);
这在 IE 或 Chrome 中不起作用。
因此,我使用 GMail 将文件作为附件通过电子邮件发送给自己。使用萤火虫查看发生了什么,谷歌发送回的内容处置是:
Content-Disposition: attachment; filename="=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?="
请注意名称是如何使用 base64 编码的 (cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==)。
所以,到目前为止我有两个问题:
- 这方面的规范在哪里?
- 是否有任何已知的方法可以使用 ASP.NET 提供这种类型的文件名?