问题是这样的,基于TCP的网络,Android是客户端,pc是服务器端(VC编写),能够实现基于套接字的网络聊天,但是只能接收英文和数字。若是汉字的话,接收的是乱码。望前辈们指教,是哪里有问题?感谢!

解决方案 »

  1.   

    显然,你这是编码不匹配造成。如果发送端使用HZ18030,而接收端使用UTF-8则显示汉字时一定是乱码。而Socket传输时按字节传输,因此需要保证编码一致,才能显示。若不一致,则需要在一端进行转换。
      

  2.   

    请问1楼,接收端使用的是UTF-8,发送端采用的是vc++编的。我该如何做,才能正确接收?感谢!
      

  3.   

    EncodingUtils.getString(byte[],String);这个方法可以将byte数组按照具体的编码转换成字符串
      

  4.   

    4楼前辈好!我用mStrMsg=EncodingUtils.getString(buffer, "GB2312");解决了Android端的中文乱码问题。但是试了好多方法,vc++PC端的中文乱码还是解决不了,望指教,谢谢!
      

  5.   


    接收端Android Linux内核,UTF-8编码
    发送端Windows ,一般GBK或者GB2312编码……转码工作非常繁杂,LS方式可行。