Internet Explorer显示保存/打开文件的乱码?

时间:2015-08-19 07:32:42

标签: c# asp.net http internet-explorer fiddler

我有这个从服务器下载文件的C#代码:

 public static void DownloadBinaryFile(byte[] _ByteArray, string fullfileName)
        {
             fullfileName = "רועי.pdf"; //"Royi.pdf" in hebrew
             System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + fullfileName);
             System.Web.HttpContext.Current.Response.BinaryWrite(_ByteArray);
             System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
             System.Web.HttpContext.Current.Response.Flush();
             System.Web.HttpContext.Current.Response.End();
        }

请注意,filename具有固定值(用于测试)。

当我点击按钮时:

enter image description here

我在FIDDLER中看到正确的名字:

enter image description here

Chrome 显示正确的文件名保存:

enter image description here

但是,Internet Explorer显示出胡言乱语:

enter image description here

其他信息:

IE 11,Windows 7 64位,Edge:

enter image description here

网页编码:

enter image description here

问题:

为什么文件名显示为乱码,我该如何解决?

1 个答案:

答案 0 :(得分:1)

因为您无法在Content-Disposition中使用非ASCII字符而无需额外转义。请参阅http://greenbytes.de/tech/webdav/rfc6266.html#disposition.parameter.filename