如何在android中将输入流从字节数组转换为字符串
我正在研究RFID串口。在这篇文章中,我有一个提到的源代码,比如这个新的SerialPortnew文件/dev/ttyS3,19200;它工作完美我得到了一个输出,但不是很好的编码我尝试了所有的编码,但它不工作 我从InputStream获得一个输出: mInputStream=mSerialPort.getInputStream; 专用字节[]接收缓冲区=新字节[128];; 私有整数大小=0; size=mInputStream.readReceiveBuffer; //我检查了所有的编码 字符串消息=新的StringreciveBuffer,0,大小,Charset.forNameiso-8859-1; String message2=新的StringreciveBuffer,0,大小,Charset.forNamewindows-1252; 断言消息2.charAt1=='\u00E4'; String message3=新的StringreciveBuffer,0,大小,Charset.forNameUS-ASCII; 字符串编码=接收缓冲区[0]&128==0?UTF-8:windows-1252; 字符串显示=新StringreciveBuffer,0,大小; 但在字符串中,我得到: 3.������`������`��xf���F���如何在android中将输入流从字节数组转换为字符串,android,arduino,serial-port,inputstream,bytearrayoutputstream,Android,Arduino,Serial Port,Inputstream,Bytearrayoutputstream,我正在研究RFID串口。在这篇文章中,我有一个提到的源代码,比如这个新的SerialPortnew文件/dev/ttyS3,19200;它工作完美我得到了一个输出,但不是很好的编码我尝试了所有的编码,但它不工作 我从InputStream获得一个输出: mInputStream=mSerialPort.getInputStream; 专用字节[]接收缓冲区=新字节[128];; 私有整数大小=0; size=mInputStream.readReceiveBuffer; //我检查了所有的编码
从所有编码。是否使用扩展ascii>127?您可以尝试以下功能:
private String Buff2String(byte[] buff) {
String retVal = "";
for(byte c : buff) {
int i = c & 0xFF;
retVal += (char)i;
}
return retVal;
}
我不知道我使用的是普通编码,但有一个.so库串行端口