首先说明下:我的解决方法不一定适用于其他遇到该问题的人,因为情况多种多样,适合我的方法不一定适合别人,就像我在遇到问题时查到别人的解决方案放到我的代码里却不管用,所以这个方法仅供参考

这两天做了一个导出数据到Excel功能,用NPOI导出,但是在最后步骤出了一点小岔子,导出文件的名称在火狐里面显示的是乱码,在谷歌和IE里面均正常,这尼玛~~~瞬间想把火狐给千刀万剐了有木有!!当然光生气是没什么用的,问题总是要解决的。虽然用户基本不用火狐浏览网站,但是留这么一个问题在也不合适是不是,所以就找原因,csdn上一位博主写了一个解决办法(传送门),但是我用过后发现不管用,不知道是不是我的情况特殊,也有在百度上看到火狐官方的回答是让设置文件编码,不过也没用,后来在百度知道上看到另一个大神说不需要编码,于是试了一下,发现火狐是OK了,但是谷歌和IE却抽了,无奈只好做了一个判断,对火狐特殊处理,具体代码如下:

 1 //这里判断使用的浏览器是否为Firefox,Firefox导出文件时不需要对文件名显示编码,编码后文件名会乱码
 2         //但是IE和Google需要编码才能保持文件名正常
 3         if (baseContext.Request.ServerVariables["http_user_agent"].ToString().IndexOf("Firefox") != -1)
 4         {
 5             baseContext.Response.AddHeader("Content-Disposition", "attachment;filename="
 6                 + sFileName);
 7         }
 8         else
 9         {
10             baseContext.Response.AddHeader("Content-Disposition", "attachment;filename="
11                 + System.Web.HttpUtility.UrlEncode(sFileName, System.Text.Encoding.UTF8));
12         }
判断浏览器分开处理

相关文章:

  • 2021-08-17
  • 2021-05-04
  • 2021-05-26
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案