所以我有一個運行的java服務器,期望來自我的arduino客戶端的數據。我的數據的原始類型是uint8_t,但我希望它作爲一個字符串。 這是我做我的轉換:在java中未識別uint8_t的字符串轉換
String stringData = (char*) data;
其中「數據」是類型uint8_t數組。 我可以打印'stringData'的值,它看起來完全是我想要的,但是當它到達我的java服務器時,它顯示爲一個盒子裏面的小問號。有誰知道爲什麼?
P.S.當創建一個正常的字符串時它工作得很好(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端轉換,如果它是更方便(或可能)這樣做
請註明'data'類型,以及從哪裏獲得String類型,並舉例說明典型的'data'。 –
'data'是一個uint8_t類型的數組。我不知道「你從哪裏得到字符串類型」是什麼意思。 'data'通過讀取NFC標籤進行初始化 – dks209
您是否知道'data'的字符集和編碼? (或者,你打算使用「平臺默認值」來踢?) –