C++服务器与C#客户端,利用Sokcet进行通信,如果发送与接收都是英文与数字,OK没有任何问题,如果出现中文刚会出现乱码。下面是客户端接收代码:
System.Net.IPAddress myIP;
System.Net.IPEndPoint myServer;
System.Net.Sockets.Socket connSocket;
System.Net.Sockets.NetworkStream netStream;myIP = IPAddress.Parse(ipString);
myServer = new IPEndPoint(myIP,portInt);
connSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
connSocket.Connect(myServer);
netStream = new NetworkStream(connSocket);
byte[] Rec=new byte[2500];
netStream.Read(Rec, 0, Rec.Length);
尝试过的编码有:
Recstring=System.Text.Encoding.GetEncoding("GB2312").GetString(Rec);
Recstring=System.Text.Encoding.UTF8.GetString(Rec);
Recstring=System.Text.Encoding.GetEncoding(54936).GetString(Rec);
Recstring=System.Text.Encoding.GetEncoding(54936).GetString(Rec);
返回中文全部是乱码,想请都C++一般是采用什么编码,在C#中相应的编码是什么?
请高手指点!!!

解决方案 »

  1.   

    C++里面通常是用ASCII码,一个汉字用两个ASCII码表示.
    是不是C#里面默认的是UNICODE??
    如果是的话就需要把C++发过来的数据转换成UNICODE.MultiBytetoWidechar/WidechartoMultiByte
      

  2.   

    字符集的问题
    C#中用下列字符集
    System.Text.Encoding.ASCII.GetString()
    System.Text.Encoding.ASCII.GetBytes()
      

  3.   

    现在C++服务器端没有办法进行修改,只能对C#客户端进行修改,想请教怎么把C#默认的UNICODE转换成为ASCII。或者说有没有办法请C#把ASCII码转换为中文?
      

  4.   

    zhaowenlong(梦难求) ( ) 信誉:100  2006-04-07 10:41:00  得分: 0  
     
     
       字符集的问题
    C#中用下列字符集
    System.Text.Encoding.ASCII.GetString()
    System.Text.Encoding.ASCII.GetBytes()
      
     
    尝试过了ASCII一样也是乱码!
      

  5.   

    嗯,处理好ascii和unicode的转换
      

  6.   

    oyljerry(【勇敢的心】→ ㊣任逍遥√㊣) ( ) 信誉:130  2006-04-07 10:46:00  得分: 0  
     
     
       嗯,处理好ascii和unicode的转换
      
     
    关键是如何处理呀!!有无示例?