如果转成byte[]或者用String,getBytes("UTF-8")都不能完全有效地解决问题。
解决方法就是直接编码。如下:
in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));//Java流读写
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));
关于效率和其他方面的比较,我还在考虑。