The project uses Android and C + + communication, choose the way to send characters with the socket, the first use of the code is:
Socket=new Socket (); Inetsocketaddress isa = new Inetsocketaddress (ip_str, port); Socket.connect (ISA, 100); PrintWriter out=new PrintWriter (Socket.getoutputstream (), true); BufferedReader recvbuf=new BufferedReader (New InputStreamReader (Socket.getinputstream ()));
In this way, the character set cannot be set, whether it is sent or received if it is different from the server's character set, it will appear garbled.
Finally, change the procedure to:
Socket=new Socket (); Inetsocketaddress isa = new Inetsocketaddress (ip_str, port); Socket.connect (ISA, 100); PrintWriter out=new PrintWriter (New BufferedWriter (New OutputStreamWriter (Socket.getoutputstream (), "gb2312"), True ); BufferedReader recvbuf=new BufferedReader (New InputStreamReader (Socket.getinputstream (), "gb2312"));
The character set set by my server is gb2312. We can set the character set according to their own needs, the principle is that they send and receive the character set to be consistent, their own reception and the other party's transmission character set.