我是C#的新手,我構建了一個應用程序,它接收來自串行端口的字節並解析字節。將字節數組轉換爲C中的字符串#
在一種情況下,應用程序接收到表示字符串的字節數組。我的想法是將字節轉換爲字符串廣告將字符串可視化爲文本框。
有了這個代碼:
textSerialNumber.Text = Encoding.UTF8.GetString(readData.payload, 0, readData.payload.Length);
我獲得字符串,但有一個問題:第一個字節的串行端口上接收是0×00(它表示一個ACK)。當我轉換有效載荷(ack +字符串)時,第一個字符是NULL,文本框分配失敗。
如果我修改代碼以開始形成字節數組的第一個元素:
textSerialNumber.Text = Encoding.UTF8.GetString(readData.payload, 1, readData.payload.Length);
此外,在這種情況下,文本框分配失敗。
我嘗試跳過文本框中分配:
string x = Encoding.UTF8.GetString(readData.payload, 1, readData.payload.Length);
但也詮釋這種情況下,編碼失敗。
任何建議找到錯誤?
在此先感謝。
嘗試'string base64 = Convert.ToBase64String(readData);' – mmushtaq
這是什麼意思「它失敗」? – JeffRSon
失敗意味着賦值過程失敗,代碼達到catch語句。 – Federico