.net byte转换为string类型
产线ATE软件读取模块SN(byte[])转换为string类型后,末尾含有不定数量的"\0".该字符容易引起软件异常.
1)截取字符串需要根据长度去截取,万一选错长度,无法发现错误
2)示波器Flex截图需要传入SN,但是如果字串中有\0,包含该字串的命令就会被识别为非法命令
3)比对SN的时候.协议的最长长度为16,但是如果选错长度会NG
1.一直想对转换后的字符串,进行Replace,Trim等操作来解决问题,最后发现没有效果
2.深入问题的本质
\0是转义字符,ascII码表第一个元素,winform的UI元素不会显示.
如果byte[]中有默认初值为0的元素,那么在调用System.Text.Encoding.ASCII.GetString()方法后,会按照ASCII码表
将0进行转换为NULL字符,然后进行输出,导致问题出现
3.通过对byte[]原始数据进行Linq筛选,排除0元素.问题迎刃而解.(这里是针对从设备读取的原始ASCII字节序列)
优质内容筛选与推荐>>