【发布时间】:2011-04-21 15:41:20
【问题描述】:
我在尝试提供带有西班牙波浪线的文件时遇到了一个与 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==)。
所以,到目前为止,我有 2 个问题:
- 这方面的规范在哪里?
- 是否有任何已知的方法可以使用 ASP.NET 提供这种类型的文件名?
【问题讨论】:
-
同时,第一种格式也适用于 Chrome 和 IE9。另请参阅 RFC 6266。
-
是的,重复 --- 转到上面的链接 ^。 Tadeusz A. Kadłubowski - 感谢您为我们指明了正确的方向!
标签: utf-8 asp.net-mvc-2 internationalization content-disposition