火狐浏览器下载乱码的原因是因为编码不同于别的浏览器。

在网上搜索了很多关于这个问题的解决办法,基本上都是先检测是不是火狐浏览器,如果是火狐浏览器则用火狐浏览器的编码方式将字符进行编码。

但是我很无奈的是他们的代码我都用不了,我根本没有他们贴出来的方法,也不知道他们用的是什么framework是什么版本。 

后来我发现,火狐浏览器可能也意识到这个问题,所以他们对这个问题进行了解决,所以火狐浏览器的下载的解决方式就是不用任何编码方式,直接把标题输出即可,代码如下

            String agent = Request.Headers.Get(“USER-AGENT”);//获取发送请求的浏览器
            if (agent != null && agent.IndexOf(“Firefox”) > -1)//判断是不是火狐浏览器
            {// FF 火狐浏览器
                Response.AddHeader(“Content-Disposition”, “attachment;  filename=” + System.IO.Path.GetFileName(Server.MapPath(path)));
            }
            else
            {//其他浏览器
                Response.AddHeader(“Content-Disposition”, “attachment;  filename=” + HttpUtility.UrlEncode(System.IO.Path.GetFileName(Server.MapPath(path)), System.Text.Encoding.UTF8));
            }

版权声明:本文为MTRD原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/MTRD/p/5264574.html