我写了一个导出,导出的名字是中文字,如果写个英文字就不是乱码,代码如下:public void Bind()
    {
        string sql = "select * from userInfo";
        DataTable dt = SQLServerDAL.DbHelperSQL.Query(sql).Tables[0];
        StringWriter sw = new StringWriter();
        sw.WriteLine("编号\t姓名\t年龄");
        foreach(DataRow dr in dt.Rows)
        {
            sw.WriteLine(dr["id"] + "\t" + dr["name"] + "\t" + dr["age"]); 
        }
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.AddHeader("Content-Disposition", "attachment; filename=报表.xls");
        Response.ContentType = "application/ms-excel";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        Response.Write(sw);
        Response.End();     }
请问各位前辈要怎么解决呀!

解决方案 »

  1.   

    utf7,你的代码里,写一个就可以了。
    Response.ContentEncoding = System.Text.Encoding.UTF8; 
     Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 
      

  2.   

    就在代码里加一名utf7,就可以了吗?
      

  3.   

    帮你改了一下,没测试的。public void Bind() 
        { 
            string sql = "select * from userInfo"; 
            DataTable dt = SQLServerDAL.DbHelperSQL.Query(sql).Tables[0]; 
            StringWriter sw = new StringWriter(); 
            sw.WriteLine("编号\t姓名\t年龄"); 
            foreach(DataRow dr in dt.Rows) 
            { 
                sw.WriteLine(dr["id"] + "\t" + dr["name"] + "\t" + dr["age"]); 
            } 
    Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment; filename="+UrlPathEncode("报表.xls")); 
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-7");
            Response.ContentType = "application/ms-excel"; 
            Response.Write(sw); 
            Response.End();     } 
      

  4.   

    用escape unescape 编解码
      

  5.   


    HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString();或者GB2312
      

  6.   

    一般都是编码不统一出现乱码,
      Response.ContentEncoding = System.Text.Encoding.UTF8; 
            Response.AddHeader("Content-Disposition", "attachment; filename=报表.xls"); 
            Response.ContentType = "application/ms-excel"; 
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 
    这里你设置两次编码,最终输出的gb2312,看下浏览器里用的什么编码,改成gb2312可能就不乱了,或者用utf-8试试