我是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