.net byte转换为string类型


ASCII码转换

一.问题来源

  产线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字节序列)

优质内容筛选与推荐>>
1、Python 内置的简单的web服务器
2、null和空字符串的区别
3、ORACLE PL/SQL 实例精解之第四章 条件控制:if 语句
4、【AtCoder Beginner Contest 073 D】joisino's travel
5、使用类型通配符


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号