ASCII 功能字符 控制字符

ASCII字符集中的功能码/控制字符

2019-03-14
44次浏览
【什么是Function Code功能码或Function Character功能字符】
ASCII字符集,大家都知道吧,最基本的包含了128个字符。其中前32个,0-31,即0x00-0x1F,都是不可见字符。这些字符,就叫做控制字符。这些字符没法打印出来,但是每个字符,都对应着一个特殊的控制功能的字符,简称功能字符或功能码Function Code。简言之:ASCII中前32个字符,统称为Function Code功能字符。此外,由于ASCII中的127对应的是Delete,也是不可见的,所以,此处根据笔者的理解,也可以归为Function Code。此类字符,对应不同的“功能”,起到一定的“控制作用”,所以,称为控制字符。关于每个控制字符的控制功能缩写,参见下表:
表格1ASCII中的控制字符
进制十六进制控制字符转义字符*说明Ctrl +下列字母*000NUL/0Null character(空字符)@ (Shift + 2)101SOH
Start of Header(标题开始)A202STX
Start of Text(正文开始)B303ETX
End of Text(正文结束)C404EOT
End of Transmission(传输结束)D505ENQ
Enquiry(请求)E606ACK
Acknowledgment(收到通知/响应)F707BEL/aBell(响铃)G808BS/bBackspace(退格)H909HT/tHorizontal Tab(水平制表符)I100ALF/nLine feed(换行键)J110BVT/vVertical Tab(垂直制表符)K120CFF/fForm feed(换页键)L130DCR/rCarriage return(回车键)M140ESO
Shift Out(不用切换)N150FSI
Shift In(启用切换)O1610DLE
Data Link Escape(数据链路转义)P1711DC1
Device Control 1(设备控制1) /XON(Transmit On)Q1812DC2
Device Control 2(设备控制2)R1913DC3
Device Control 3(设备控制3) /XOFF(Transmit Off)S2014DC4
Device Control 4(设备控制4)T2115NAK
Negative Acknowledgement(拒绝接收/无响应)U2216SYN
Synchronous Idle(同步空闲)V2317ETB
End of Trans the Block(传输块结束)W2418CAN
Cancel(取消)X2519EM
End of Medium(已到介质末端/介质存储已满)Y261ASUB
Substitute(替补/替换)Z271BESC/eEscape(溢出/逃离/取消)[281CFS
File Separator(文件分割符)/291DGS
Group Separator(分组符)]301ERS
Record Separator(记录分隔符)^ (Shit + 6)311FUS
Unit Separator(单元分隔符)_ (Shift + -)3220SP
White space[Space] *1277FDEL
Delete(删除)[Delete] *


注(*):1.转义字符:即在C语言中或其他地方如何表示。2.用键盘输入控制字符:其中,32是空格键,127是Delete键,都不需要加Ctrl键,即可直接输入。3.可以通过“Ctrl+对应按键”实现上述控制字符的输入,你可能遇到的一些,比如:用Ctrl+V输入SYNC,Ctrl+M输入Enter(当然也可以直接用Enter键,但是在Windows下面,其可能会发送两个字符:CR和LF),Ctrl+Q输入XON,Ctrl+S输入XOFF等等。

其具体每个控制字符的含义,详解介绍如下:【ASCII中的Function/Control Code功能字符的详细含义】
0 – NUL –NULl字符/空字符ASCII字符集中的空字符,NULL,起初本意可以看作为NOP(中文意为空操作,就是啥都不做的意思),此位置可以忽略一个字符。之所以有这个空字符,主要是用于计算机早期的记录信息的纸带,此处留个NUL字符,意思是先占这个位置,以待后用,比如你哪天想起来了,在这个位置在放一个别的啥字符之类的。后来呢,NUL字符被用于C语言中,字符串的终结符,当一个字符串中间出现NUL / NULL,代码里面表现为/0,的时候,就意味着这个是一个字符串的结尾了。这样就方便按照自己需求去定义字符串,多长都行,当然只要你内存放得下,然后最后加一个/0,即空字符,意思是当前字符串到此结束。
1 – SOH –StartOfHeading标题开始如果信息沟通交流主要以命令和消息的形式的话,SOH就可以用于标记每个消息的开始。1963年,最开始ASCII标准中,把此字符定义为Start of Message,后来又改为现在的Start Of Heading。现在,这个SOH常见于主从(master-slave)模式的RS232的通信中,一个主设备,以SOH开头,和从设备进行通信。这样方便从设备在数据传输出现错误的时候,在下一次通信之前,去实现重新同步(resynchronize)。如果没有一个清晰的类似于SOH这样的标记,去标记每个命令的起始或开头的话,那么重新同步,就很难实现了。
2 – STX –StartOfText文本开始3 – ETX –End OfText文本结束通过某种通讯协议去传输的一个数据(包),称为一帧的话,常会包含一个帧头,包含了寻址信息,即你是要发给谁,要发送到目的地是哪里,其后跟着真正要发送的数据内容。而STX,就用于标记这个数据内容的开始。接下来是要传输的数据,最后是ETX,表明数据的结束。其中,中间具体传输的数据内容,ASCII规范并没有去定义,其和你所用的传输协议,具体自己要传什么数据有关。
帧头数据或文本内容

SOH(表明帧头开始)。。。。(帧头信息,比如包含了目的地址,表明你发送给谁等等)STX(表明数据开始)。。。(真正要传输的数据)ETX(表明数据结束)

我要点评