用Encoding.Default.GetString(buff);

解决方案 »

  1.   

    其实只要把ENCODING变成DEFAULT就可以了
      

  2.   

    // send
    byte[] buf = System.Text.Encoding.GetEncoding("gb2312").GetBytes(strContent);
    // recv
    strContent = System.Encoding.GetEncoding("gb2312").GetString(buf);
      

  3.   

    .net中string缺省的编码是UTF16,ASCIIEncoding会导致字节的丢失,实际网络传输建议使用UTF8编码把string转换为byte[]来传输数据,其他编码容易导致byte[]数据的变大
      

  4.   

    Encoding kkk=Encoding.GetEncoding("GB2312");
    byte[] bytesend=kkk.GetBytes(this.tb2.Text);这时候用Socket传送 bytesend 便正常了。
      

  5.   

    System.Text.ASCIIEncoding.ASCII.GetString(buff,0,255);
    这得到的是ASCII编程呀!怎么可能显示中文。
    System.Text.ASCIIEncoding.Unicode.GetString(buff,0,255);
    应该可以了。