Utf 8 内容配置特殊字符
我在尝试使用西班牙语tildes提供文件时遇到了一个问题,与内容配置编码有关 文件名为“quéhacés ahora.docx” 到目前为止,ASP.NET MVC提供文件的方式添加了以下标题,该标题仅在Firefox中可用: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
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==)
到目前为止,我有两个问题:
我对文件名也有同样的问题。文件名
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-感谢您为我们指明了正确的方向!