zoukankan      html  css  js  c++  java
  • 在ASP.NET中,IE与Firefox下载文件带汉字名时乱码的解决方法

    解决办法:

    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
    HttpContext.Current.Response.Charset = "gb2312";
    HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", string.IsNullOrEmpty(fileName) ? DateTime.Now.ToString("yyyyMMddHHmmssfff") : System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)));
    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
    HttpContext.Current.Response.End();

    不过上述方法在firefox上还是乱码

    终极解决办法:

                    Encoding encoding;
                    string outputFileName = null;
                    string browser = HttpContext.Current.Request.UserAgent.ToUpper();
                    if (browser.Contains("MS") == true && browser.Contains("IE") == true)
                    {
                        outputFileName = HttpUtility.UrlEncode(fileName);
                        encoding = System.Text.Encoding.Default;
                    }
                    else if (browser.Contains("FIREFOX") == true)
                    {
                        outputFileName = fileName;
                        encoding = System.Text.Encoding.GetEncoding("GB2312");
                    }
                    else
                    {
                        outputFileName = HttpUtility.UrlEncode(fileName);
                        encoding = System.Text.Encoding.Default;
                    }
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.Buffer = true;
                    HttpContext.Current.Response.ContentEncoding = encoding;
                    HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", string.IsNullOrEmpty(outputFileName) ? DateTime.Now.ToString("yyyyMMddHHmmssfff") : outputFileName));
                    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
                    HttpContext.Current.Response.End();
    

      

      

  • 相关阅读:
    MySQL主从复制与主主复制
    Go语言mgo
    beego07----web博客
    mongo14-----group,aggregate,mapReduce
    mongo13----application set与分片结合
    mongo12---手动预先分片
    TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
    TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
    TCP/IP详解学习笔记(2)-数据链路层
    TCP/IP详解学习笔记(1)-基本概念
  • 原文地址:https://www.cnblogs.com/51net/p/3874315.html
Copyright © 2011-2022 走看看