在尝试提供带有西班牙重音符的文件时,我遇到了一个问题,与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将文件作为附件发送给自己。使用firebug查看情况,Google返回的Content-Disposition是:
Content-Disposition: attachment; filename="=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?="
注意名称是base64编码的(cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==)。
所以,我目前有两个问题:
- 这方面有什么规范吗?
- 是否有任何已知的使用ASP.NET提供此类型文件名的方法?