我在客户端先用msgbyte=Encoding.Unicode.GetBytes(msg);writer.Write(msgbyte);做了处理,你看这样行吗?

解决方案 »

  1.   

    private void SendData(string data)
    {
    Byte[] byte_data = System.Text.Encoding.Default.GetBytes(data.ToCharArray()); int nCount = m_pClientSocket.Send(byte_data,byte_data.Length,0);
    if(nCount != byte_data.Length)
    {
    throw new Exception(".....!");
    }  ........
    }  主要是这一句,转换编码 用
    Byte[] byte_data = System.Text.Encoding.GetEncoding("gb2312").GetBytes(data.ToCharArray());也可以m_pClientSocket为监听套接字
     
    if(nCount != byte_data.Length) 判断发送字任的长度 在我的机器win 2003 .net框架1.1下没问题
      

  2.   

    to windinwing(潇笑) :
    老实说你是不是微软派来的卧底!
    兄台真是历害!!!
    照您说的做了。ok了!!!能给个QQ吗?
      

  3.   

    请问斑竹unix支持中文吗?在unix端接收数据用的也是Unicode编码吗?
      

  4.   

    斑竹可以这样检查数据是否传输正确:
    在发送数据(字节流)时记下发送的字节,必须是发送前一刻的字节流,可以用输出到控制台的方式;
    在接收数据时记下接收的字节,看与发送的字节是否一致,如果一致,证明传输没有问题。问题可能出在编码上。如果在发送时用的是什么编码,那么接收也必须用同一种编码。但是如果unix不支持中文输出,那只能是乱码。