我准备了这样的套接字客户端连接:
Socket socket = new Socket();
socket.setSoTimeout(500);
hostname = "XX.YY.ZZ.XX";
socket.connect(new InetSocketAddress(hostname, port), 6000);
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
false);
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
我使用以下代码读取数据:
if (in.ready() == true) {
String message = in.readLine();
Log.e("MyApplication", "data=" + message);
}
当我查看 logcat 时,我看到了吗?char 而不是每个国家字符。我确定发送到我的 android 应用程序的数据是 utf-8 字符集,因此我尝试使用如下代码:
UTF8Str = new String(message.getBytes(),"UTF-8");
或像这样创建 BufferReader:
in = new BufferedReader(new InputStreamReader(
socket.getInputStream(),"UTF-8"));
但一切都没有成功。有人可以帮我解决问题转换字符以将它们作为国民显示在 logcat 中(我的主要目标是在 TextView 中显示它们)。两周前一切正常,但经过一些 Ecclipse 重新配置(我无法恢复到旧设置)后停止了。
~Artik