if (tcp.Connected == false)
                {
                    throw new Exception("Connection is losed");
                }                NetworkStream objNetworkStream = tcp.GetStream();
                Byte[] bytWriteBuffer = new Byte[strData.Length];
                System.Text.UTF8Encoding en = new UTF8Encoding();                bytWriteBuffer = en.GetBytes(strData);
                objNetworkStream.Write(bytWriteBuffer, 0, bytWriteBuffer.Length);
subject: 中国人这个中国人会变成乱码。

解决方案 »

  1.   

    <system.web>   
       <globalization   requestEncoding="gb2312"   responseEncoding="gb2312"   fileEncoding="gb2312"/> </system.web>  在web.config中加入上面这条语句可以解决中文乱码问题。 <system.web>   
      <globalization   requestEncoding="utf-8"   responseEncoding="utf-8"   />   
      </system.web>   
      

  2.   

    我是winform程序,使用了tcpclient连接smtp服务器。没有用system.web.mail提供的程序。
      

  3.   

    你讲那那些字符专程base64string 。 smtp 服务器会自动解码的了。 而且你系统不移动是UTF8 的编码。 所以你转UTF8 的byte 本来就会乱码。
      

  4.   

    已解决。strSubject = String.Format("=?UTF-8?B?{0}?=", toBase64(mail.Subject));private static String toBase64(String strData)
            {
                System.Text.UTF8Encoding encoder = new UTF8Encoding();
                return Convert.ToBase64String(encoder.GetBytes(strData));
            }