System.Text.StringBuilder sb = new StringBuilder();
        System.IO.StringWriter swRead = new StringWriter(sb);
        Server.Execute(html, swRead);
//这里是读取一个文件
        System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential("[email protected]", "******");
        client.DeliveryMethod = SmtpDeliveryMethod.Network;        System.Net.Mail.MailMessage message = new MailMessage("[email protected]", "[email protected]", "test", sb.ToString());
        message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
        message.IsBodyHtml = true;
        client.Send(message);
    }以上在邮件里面是中文字都变成了,也看不懂是什么字
像这些“骞垮窞澶╁”谢谢

解决方案 »

  1.   

    看了应该是
    System.Text.StringBuilder sb = new StringBuilder();
            System.IO.StringWriter swRead = new StringWriter(sb);
            Server.Execute(html, swRead);
    读出来的是乱码
      

  2.   

    用Server.HtmlEncode和Server.UrlEncode对sb搞搞 没准可以
      

  3.   

    以前遇过类似的,
    这里是读取一个文件
    ===========
    这里主要看你的文件保存的编码,如果你的系统是gb2312的。。webconfig里面设置是utf-8的。那这里就有可能导致乱码
    我自己的解决方案是:简体系统asp.net用utf-8.邮件文件用ansi(系统默认编码),然后写入读取时都用回ansi!
    注意。System.IO.StringWriter swRead 这个默认是用uft-8读的!!并不是ansi(也就是说当你的系统为简体时,保存的ansi指定的是简体,然而读的时候却用了uft-8去编码,所以乱码了)
      

  4.   

    改写读取的方法。仅供参考:
    System.IO.Stream sr=File.Open( AppDomain.CurrentDomain.BaseDirectory+FileName,FileMode.Open );
    System.IO.StreamReader reader = new System.IO.StreamReader(sr, System.Text.Encoding.Default);
    string str=reader.ReadToEnd();
      

  5.   

    StreamReader sr = new StreamReader(Server.MapPath(html),Encoding.GetEncoding("gb2312"));
    用这个也是一样的乱码
    我读取的是我本地存放的htm文件
      

  6.   

    用StreamReader sr = new StreamReader(Server.MapPath(file), Encoding.GetEncoding("utf-8"))已经OK那
    System.Text.StringBuilder sb = new StringBuilder();
            System.IO.StringWriter swRead = new StringWriter(sb);
            Server.Execute(html, swRead);
    要怎么改主要是在哪里用Encoding.GetEncoding("utf-8"))
      

  7.   

    //--html是你获取的内容?那么byte[] bs = System.Text.Encoding.GetEncoding("gb2312").GetBytes(html);
    bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding("gb2312"), System.Text.Encoding.GetEncoding("utf-8"), bs);
    string getHtml = System.Text.Encoding.GetEncoding(To).GetString(bs);
      

  8.   

    message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");把这个换成utf-8看看?
      

  9.   

    跟踪swRead.Encoding.EncodingName的是不是utf-8,如果是就应该把
    message的编码设置和它一样.
      

  10.   

    byte[] bs = System.Text.Encoding.GetEncoding("gb2312").GetBytes(html);
    bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding("gb2312"), System.Text.Encoding.GetEncoding("utf-8"), bs);
    string getHtml = System.Text.Encoding.GetEncoding(To).GetString(bs);同意这个