Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(DsContent1.Tables("ic").Rows(0).Item("filename"), System.Text.Encoding.UTF8))

解决方案 »

  1.   

    你的工程是不是utf8编码的?
    两个方法:
    1。在web.config文件里面修改为gb2312编码;
    2。要对文件名编号,编码函数:/// <summary>
    /// 更改为UTF8编码
    /// </summary>
    /// <param name="strFileName">文件名</param>
    /// <returns>UTF8编码以后的文件名</returns>
    public string toUTF8(string strFileName)
    {
    string  str  =  "";
    char[]  cBuf  =  new  char[1];
    System.Text.Encoding  enc  =  System.Text.Encoding.UTF8;
    foreach(char  c  in  strFileName)
    {
    if(c>=0  &&  c<128)
    {
    if(str.Length  >=  140)
    {
    break;
    }
    str  +=  c;
    }
    else
    {
    if(str.Length  >=  137)
    {
    break;
    }
      
    cBuf[0]  =  c;
    byte[]  arrBuf  =  enc.GetBytes(cBuf);
    for(int  i  =  0;  i  <  arrBuf.Length;  i++)
    {
    str  +=  String.Format("%{0:X}",  arrBuf[i]);
      
    }
      
    }
      
    }
    str  =    str.Replace  ("  ","%20");
    return  str; }
      

  2.   

    trystring FileName = System.Web.HttpUtility.UrlEncode( System.Text.Encoding.UTF8.GetBytes( _FileName ) );
    Response.AddHeader("Content-Disposition", "inline;filename="+ System.Convert.ToChar(34) + FileName + System.Convert.ToChar(34) );