我的程序是一个基于socket的即时群聊系统
客户端和服务器socket都是用utf-8编码。客户端和服务器在同一台机器上测试的时候,完全正常。当分开时,客户端本来应该收到hello这个单词,现在却多收到了两个字符 \ufffd\ufffd
eclipse中编译时设置了utf-8.
这是服务端的流:
OutputStreamWriter stream = new OutputStreamWriter(
socket.getOutputStream(), "UTF8");
pw = new PrintWriter(stream);
br = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "UTF8"));
这是客户端的流:
BufferedReader br = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream(), "UTF-8"));
OutputStreamWriter stream = new OutputStreamWriter(clientSocket.getOutputStream(), "UTF-8");
服务端发送的消息是:
pw.println("hello");
pw.flush();
客户端收到的是 \ufffd\ufffdhello