gpt4 book ai didi

java - 解码 [] 字节我只得到字符�����

转载 作者:行者123 更新时间:2023-12-01 16:59:58 30 4
gpt4 key购买 nike

我正在尝试从 Arduino BT 解码 []byte,我的连接完美,问题是当我尝试解码数组时。我得到的只是这个字符�(发送的字节数相同)我认为问题出在解码上。我尝试使用 ASCII 字符集,但仍然存在同样的问题。我正在使用 Android Studio 并设置为 UTF-8 格式。

有人可以告诉我发生了什么事吗?

输出流:

public void write(byte[] bytes) {

String text = new String(bytes, StandardCharsets.US_ASCII);

Log.d(TAG, "write: Writing to outputstream: " + text);
try {
mmOutStream.write(bytes);
Log.d(TAG, "write: Writing to outputstream: " + bytes);
} catch (IOException e) {
Log.e(TAG, "write: Error writing to output stream. " + e.getMessage() );
}
}

输入流:

 public void run (){
byte [] buffer = new byte[1024];

int bytes;

while(true){
try {
bytes = mmInStream.read(buffer);

String incomingMessage = new String (buffer,0,bytes, StandardCharsets.US_ASCII);
Log.d(TAG,"InputStream: " + incomingMessage);


Intent incomingMessageIntent = new Intent("incomingMessage");
incomingMessageIntent.putExtra("El mensaje", incomingMessage);
Log.d(TAG,"Mensaje enviado a la main actv " + incomingMessage);

LocalBroadcastManager.getInstance(mContext).sendBroadcast (incomingMessageIntent);


} catch (IOException e) {
Log.e(TAG,"Error leyendo Imputstream" +e.getMessage());

break;
}
}
}

Logcat to see the character that I receive:

最佳答案

从 Arduino 端,您应该使用 char 作为发送格式。

Serial.write 将二进制数据写入串行端口。该数据作为一个字节或一系列字节发送

所以只需尝试解码

Serial.print("1234ABCD\r\n");

不知道Android上的命令,我猜Arduino中的字节是字符而不是二进制数据。并始终发布所有使用的代码!

关于java - 解码 [] 字节我只得到字符�����,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61523475/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com