Utf 8 内容配置特殊字符

Utf 8 内容配置特殊字符,utf-8,asp.net-mvc-2,internationalization,content-disposition,Utf 8,Asp.net Mvc 2,Internationalization,Content Disposition,我在尝试使用西班牙语tildes提供文件时遇到了一个问题,与内容配置编码有关 文件名为“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-str

我在尝试使用西班牙语tildes提供文件时遇到了一个问题,与内容配置编码有关

文件名为“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: attachment; filename="=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?="
注意名称是如何进行base64编码的(cxdqsboywpdqxmgywhvcmeuzg9jea==)

到目前为止,我有两个问题:

  • 这方面的规范在哪里
  • 是否有任何已知的方法可以使用ASP.NET提供此类型的文件名

  • 我对文件名也有同样的问题。文件名

     filename="=?utf-8?B?VGVzdG93eVBMSUvFgsSFw7PEh2FwaS5kb2N4?="
    
    在base64(VGVzdG93eVBMSUvFgsSFw7PEh2FwaS5kb2N4)字符集utf-8和oryginal文件名中编码:

     TestowyPLIKłąóćapi.docx
    
    这是获取文件名的方法:

     TestowyPLIKłąóćapi.docx
    
    string cdString=“附件;文件名=\”=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?=\”;
    字符串文件名;
    System.Net.Http.Headers.ContentDispositionHeaderValue val;
    if(System.Net.Http.Headers.ContentDispositionHeaderValue.TryParse(cdString,out val))
    fileName=val.fileName.Replace(“\”,”);
    其他的
    抛出新异常(“…”);
    


    1:可能是dup的同时,第一种格式也适用于Chrome和IE9。另请参见RFC 6266。是的,dup--转到上面的链接。Tadeusz A.Kadłubowski-感谢您为我们指明了正确的方向!