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

知识的领域是无限的,我们的学习也是无限期的。这篇文章主要讲述如何在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???

从所有编码。
答案【如何在android中将输入流转换为字节数组到字符串】您可以尝试以下功能:
private String Buff2String(byte[] buff) { String retVal = ""; for(byte c : buff) { int i = c & 0xFF; retVal += (char)i; }return retVal; }

另一答案你使用扩展ascii(> 127)?

    推荐阅读