gpt4 book ai didi

java - java中无法识别uint8_t的字符串转换

转载 作者:行者123 更新时间:2023-12-01 11:39:41 24 4
gpt4 key购买 nike

所以我有一个正在运行的java服务器,它期待来 self 的arduino中的客户端的数据。我的数据的原始类型是 uint8_t,但我希望它作为字符串。这就是我进行转换的方式:

String stringData = (char*) data;

其中“data”是 uint8_t 类型的数组。我可以打印“stringData”值,它看起来正是我想要的样子,但是当它到达我的java服务器时,它在框中显示为一个小问号。有谁知道为什么吗?

附注创建普通字符串(String stringdata =“123456”)时它工作得很好,所以我假设它与转换有关。

以下是相关代码:

Arduino:

void arduinoClient(String accountID) {
if (client.connect(ip, 9876)) {
client.println(accountID);
Serial.println("Message sent");
} else {
Serial.println("connection failed");
}
}

Java:

BufferedReader buff = new BufferedReader(new InputStreamReader (socket.getInputStream()));       
String message = buff.readLine();

如果更方便(或可能),我也可以在 java 端进行转换

最佳答案

我认为这个问题与 uint8_t 的真正含义有关。当您将其转换为 char* 时,您将其更改为 ACII value数字的字符,而不是代表数字的实际字符。 This thread explains how to do the conversion.问号是 Java 试图打印不存在的 ASCII 值。

关于java - java中无法识别uint8_t的字符串转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29641262/

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