pdf转word转换 过滤ASCII码中的不可见字符, ASCII三部分, 各控(2)

电脑杂谈  发布时间:2018-02-03 03:04:13  来源:网络整理

ASCII字符集中的空字符,NULL,起初本意可以看作为NOP(中文意为空操作,就是啥都不做的意思),此位置可以忽略一个字符。

之所以有这个空字符,主要是用于计算机早期的记录信息的纸带,此处留个NUL字符,意思是先占这个位置,以待后用,比如你哪天想起来了,在这个位置在放一个别的啥字符之类的。

后来呢,NUL字符被用于C语言中,字符串的终结符,当一个字符串中间出现NUL / NULL,代码里面表现为\0,的时候,就意味着这个是一个字符串的结尾了。这样就方便按照自己需求去定义字符串,多长都行,当然只要你内存放得下,然后最后加一个\0, 即空字符,意思是当前字符串到此结束。

1 – SOH – Start

Of Heading 标题开始

如果信息沟通交流主要以命令和消息的形式的话,SOH就可以用于标记每个消息的开始。

1963年,最开始ASCII标准中,把此字符定义为Start of Message,后来又改为现在的Start Of Heading。

现在,这个SOH常见于主从(master-slave)模式的RS232的通信中,一个主设备,以SOH开头,和从设备进行通信。这样方便从设备在数据传输出现错误的时候,在下一次通信之前,去实现重新同步(resynchronize)。如果没有一个清晰的类似于SOH这样的标记,去标记每个命令的起始或开头的话,那么重新同步,就很难实现了。

2 – STX – Start Of Text 文本开始

3 – ETX – End Of Text 文本结束

通过某种通讯协议去传输的一个数据(包),称为一帧的话,常会包含一个帧头,包含了寻址信息,即你是要发给谁,要发送到目的地是哪里,其后跟着真正要发送的数据内容。

而STX,就用于标记这个数据内容的开始。接下来是要传输的数据,最后是ETX,表明数据的结束。

其中,中间具体传输的数据内容,ASCII规范并没有去定义,其和你所用的传输协议,具体自己要传什么数据有关。

帧头

数据或文本内容

SOH(表明帧头开始)

。。。。(帧头信息,比如包含了目的地址,表明你发送给谁等等)

STX(表明数据开始)

。。。(真正要传输的数据)

ETX(表明数据结束)

不过其中有趣的是,1963年,ASCII标准最初版本的时候,把现在的STX叫做EOA(End Of Address),ETX叫做(End Of Message)。这是因为,最早的时候,一个消息中,总是包含一个开始符和一个终止符。pdf转word转换现在的新的定义,使得可以去发送一个固定长度的命令,而只用一个SOH表明帧头开始即可,而不需要再加上一个命令终止符或帧头结束符。

总结一下:

一般发送一个消息,包含了一个帧头和后面真正要传的数据。

而对于帧头,属于控制类的信息,这部分之前属于命令,后面的真实要传的数据属于数据。即消息=帧头+数据。

而之前的命令都要有个开始符和结束符,这样就是:

消息    
= 帧头    
+ 要传的数据    
    
= 帧头开始+帧头信息+帧头结束     
+ 要传的数据    
    
而现在新的定义,使得只需要:    
    
消息    
= 帧头 +要传的数据    
    
= SOH(表明帧头开始)+帧头信息     
+ 要传的数据    
    
= SOH(表明帧头开始)+帧头信息     
+ STX + 数据内容+ETX    

就可以少用一个帧头结束符。

而如今,在很多协议中,也常见到,一个固定长度的帧头,后面紧接着就是数据了,而没有所谓的帧头结束符之类的东西去区分帧头和数据。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-64691-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘伯承
      刘伯承

      统一对台湾人民是有百利而无一害的

    • 明道
      明道

      各种复杂添加剂

    • 草帽海贼团路飞
      草帽海贼团路飞

      中国没有像样的民族工业

      • 亡念之扎姆德
        亡念之扎姆德

        果断要找一个会踢球的老公呀~

    热点图片
    拼命载入中...