【发布时间】:2018-03-20 08:20:03
【问题描述】:
我是 C# 新手,我构建了一个从串行端口接收字节并解析字节的应用程序。
在一种情况下,应用程序接收表示字符串的字节数组。我的想法是将字节转换为字符串并将字符串可视化为文本框。
使用此代码:
textSerialNumber.Text = Encoding.UTF8.GetString(readData.payload, 0, readData.payload.Length);
我得到了字符串但是有一个问题:串口接收到的第一个字节是 0x00 (它代表一个 ack )。当我转换有效负载(ack + string)时,第一个字符为 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); -
“失败”是什么意思?
-
Fails 表示赋值过程失败,代码到达 catch 语句。
标签: c# arrays string serial-port