如何在android中将输入流转换为字节数组到字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android中将输入流转换为字节数组到字符串相关的知识,希望对你有一定的参考价值。

我正在研究RFID串口。在这里我有一个源代码在提到像这个new SerialPort(new File("/dev/ttyS3"), 19200);它的工作完美我得到一个输出,但没有良好的编码我尝试了所有的编码,但它不起作用。

我从InputStream得到一个输出:

mInputStream = mSerialPort.getInputStream();

private byte[] reciveBuffer=new byte[128];;
private int size = 0;

size = mInputStream.read(reciveBuffer);
 //i checked all encodings
String message = new String(reciveBuffer,0, size,Charset.forName("iso-8859-1"));
String message2 = new String(reciveBuffer,0, size,Charset.forName("windows-1252"));

assert message2.charAt(1) == 'u00E4';
String message3 = new String(reciveBuffer,0, size,Charset.forName("US-ASCII"));
String encode=((reciveBuffer[0] & 128) == 0) ? "UTF-8" : "windows-1252";
String display = new String(reciveBuffer, 0, size);

但在字符串我得到:

3������`������`��xf���f���

从所有编码。

答案

您可以尝试以下功能:

private String Buff2String(byte[] buff) {
    String retVal = "";

    for(byte c : buff) {
        int i = c & 0xFF;
        retVal += (char)i;
    }

    return retVal;
}
另一答案

你使用扩展ascii(> 127)?

以上是关于如何在android中将输入流转换为字节数组到字符串的主要内容,如果未能解决你的问题,请参考以下文章

转换流

在android中将JsonArray转换为byte []数组

如何在c ++中将数组字节转换为字符串?

如何在Dart中将UTF-8字符串转换为字节数组?

如何在PowerShell中将哈希字符串转换为字节数组?

java IO流 转换流的使用 以及编码集