作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这个从服务器下载文件的 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();
}
请注意文件名有一个固定值(用于测试)。
当我点击一个按钮时:
我确实在 FIDDLER 中看到了正确的名称:
并且 Chrome 确实显示了要保存的正确文件名:
但是 Internet Explorer 显示乱码:
附加信息:
IE 11、windows 7 64 位、边缘:
页面编码:
问题:
为什么文件名显示为乱码,我该如何解决?
最佳答案
因为如果不进行额外的转义,就不能在 Content-Disposition 中使用非 ASCII 字符。参见 http://greenbytes.de/tech/webdav/rfc6266.html#disposition.parameter.filename .
关于c# - Internet Explorer 在保存/打开文件时显示乱码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089191/
我是一名优秀的程序员,十分优秀!