当我将缓冲区数组转换为字符串时,我得到了不可读的符号或字符

时间:2017-08-28 02:10:13

标签: java android string network-programming java-io

我花了两天时间尝试解决这个问题,但我不明白是什么问题。我在android上开发了简单的服务器应用。我发送请求到服务器应用程序(下面),我通过使用缓冲区数组读取传入的消息,然后我想将缓冲区数组转换为字符串并将其保存为txt文件。我的目标是我想在接收消息时做一些匹配的字符串。 但问题是我看到的字符如下:

“% ! zy *] { u3 gy + 2% Y 5ҟ ( (c $) | lCksmve“

   private InputStream in;

     try {
        byte[] buff = new byte[LIMIT];
        int got;
        while ((got = in.read(buff)) > -1) {
                String msg = new String(buff, 0, got);
                saveToFile(msg);
        }
    } catch (Exception ignore) {
        ignore.printStackTrace();
    }  

有人可以帮我解释一下为什么我会得到这些角色吗?顺便说说, 我也尝试使用解码,如:

String msg = new String(buff, 0, got, "UFT8"); 

但没有改变,我得到了相同的字符

0 个答案:

没有答案