服务器发送一条数据如:
/**
* 获取写句
* @param socket 要获取写对象的socket
* @return 流的写句�
* @throws IOException IO异常
*/
private PrintWriter getWriter(Socket socket) throws IOException {
OutputStream socketOut = socket.getOutputStream();
return new PrintWriter(socketOut, true);
}
writer.println(queryCode);
writer.flush();
客户端接收:
/**
*
* @param socket 要获取读对象的socket
* @return 流的读句�
* @throws IOException IO异常
*/
private BufferedReader getReader(Socket socket) throws IOException {
InputStream socketIn = socket.getInputStream();
return new BufferedReader(new InputStreamReader(socketIn));
}
我在接收数据时发现这样会是乱码,之前本来不想管的,后面发现实在又解决,后面看到一朋友的贴子说;
在服务端默认的编码情况下,JAVA的SOCKET接收需要GBK编码,而C#的接收需要UTF-8编码
所以
应该写成 return new BufferedReader(new InputStreamReader(socketIn,"GBK"));
这样就正常显示了。
本文探讨了在Java Socket编程中遇到乱码问题的原因,并提供了通过调整编码方式解决此问题的方法,具体包括如何在服务端和客户端设置正确的字符编码。
1万+

被折叠的 条评论
为什么被折叠?



