客户端通过套接字从服务器接收消息时出现问题

时间:2011-06-15 12:18:08

标签: java sockets encoding

在我的服务器代码中:

pw = new PrintWriter(stream);
br = new BufferedReader(new InputStreamReader(
    socket.getInputStream(), "UTF-8"));

在我的客户端代码中

BufferedReader br = new BufferedReader(new InputStreamReader(
                    clientSocket.getInputStream(), "UTF-8"));
OutputStreamWriter stream = new OutputStreamWriter(clientSocket.getOutputStream(), "UTF-8");
PrintWriter pw = new PrintWriter(stream);

然后     首先,服务器使用:     pw.println( “OK”);     pw.flush();

客户端收到确定

之后,服务器使用:

pw.println("TRUE")
pw.flush();

这次,客户端收到一个包含unknow char的字符串

\ufffd\ufffdTRUE

然后我继续向客户端发送消息,它会在每个句子之前收到一些\ ufffd。

有人可以帮我解决问题吗?

1 个答案:

答案 0 :(得分:0)

我可以想象服务器重新发送字节顺序标记(0xFFFE 0xFFFF),它们被客户端的替换字符(0xFFFD)替换。
在每次发送服务器端之前重新创建打印编写器吗?