RFC20 用于网络交换的ASCII格式

来源:互联网 发布:考勤系统数据读不出 编辑:程序博客网 时间:2024/06/05 20:48

RFC20 用于网络交换的ASCII格式

标签(空格分隔): RFC

@author : duanxxnj@163.com
@time : 2017-02-15



ASCII format for Network Interchange
用于网络交换的ASCII格式

  • RFC20 用于网络交换的ASCII格式
    • 使用范围
    • 标准编码
    • 字符表示和编码定义
    • 图例
      • 1 控制符
      • 2 图形化符号
    • 定义
      • 1 字符综述
      • 2 控制字符

一句话,我们建议使用标准的7位ASCII编码,并通过高位补0的方式,将7位ASCII编码扩展成为8bit,以得到一个完整的字节。这样在主机之间做基本连接的时候,就可以直接使用USAS X3, 4-1968中已定义好的标准编码。一行字符的结束字符是由远程主机定义的,例如,SRI使用”.”(ASCII X’2E’ 或者 2/14)来作为行的结束字符,而UCLA则使用 “回车”(X’OD’ 或者 0/13)作为行的结束字符。

注:SRI是一个研究机构;UCLA是加利福尼亚大学洛杉矶分校。可以看出,当初网络刚开始兴起的时候,基本的字符编码还并没有统一,所以才会有这篇文章,用于统一字符编码,以及一行字符的结束符。这篇文章是UCLA于1969年提出的,所以后后来使用的就是“回车”了

-

注: 关于“回车”(carriage return)和“换行”(linefeed)这两个概念很有意思。在计算机还没有出现之前,有一种叫做电传打字机的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行,这就是“换行”和“回车”的来历。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。Unix系统里,每行结尾只有“换行”,即“<\n>”;Windows系统里面,每行结尾是“ <回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,一直沿用至今



USA Standard Code for Information Interchange
美国信息技术标准编码(ASCII)

1 使用范围

本字符编码集用在各信息处理系统、通讯系统及相关设备之间的一般信息交换上。

2 标准编码

image_1b8vm218ugrv1glt1d1k8ipiei9.png-110.9kB

注:由于ASCII编码的最高位并没有被使用,所以也有一些基于ASCII扩展的编码方式,比如扩展了“僧伽罗语”的编码,就是使用了最高位做了编码扩展。

3 字符表示和编码定义

标准的7位字符编码定义:b7是最高位,b1是最低位,举个例子:
字符K在ASCII码表示是第11行,第4列,其二进制表示为

—————–image_1b8vniokg172f6uc1p58vi21kdhm.png-8.7kB

字符在ASCII码表中的位置,也可以作为字符的表示方式,还是字符K,由于其在第11行,第4列,所以可以表示为“column 4, row 11”或者是“4/11”

编码表中的(b4b3b2b1)所对应的十进制数,就是编码表的行号;而(b7b6b5)所对应的十进制数,就是编码表的列号。

上面的编码表可以简写为:ASCII或者USASCII

ASCII(发音为as’-key)、USACII(发音为yous s as’-key)的具体意义,通常是由其最新的编码标准确定,为了明确的指明一个编码标准,一般会在其后添加两个数字,以代表该编码方式发布的年份,比如:“ASCII 63”或“USASCII 63”。

注:现在所使用的ASCII编码最终确立于1968年,然后再没有改变过,也就是“ASCII 67”

4 图例

注:图例的英文原文是“Legend”,这里将其翻译为图例并不好,但是我没有想到更好的翻译,暂且先用这个

4.1 控制符

注:这里主要是对标准编码中的代码做基本解释

代码 英文解释 中文解释 NULL null 空字符 SOH Start of Heading (CC) 头信息开始(通讯控制) STX Start of Text (CC) 文本信息开始(通讯控制) ETX End of Text (CC) 文本信息结束(通讯控制) EOT End of Transmission (CC) 传输结束(通讯控制) ENQ Enquiry (CC) 查询(通讯控制) ACK Acknowledge (CC) 应答(通讯控制) BEL Bell (audible or attention signal) 铃声 BS Backspace (FE) 退格(格式控制符) HT Horizontal Tabulation (FE) 水平制表(格式控制符) LF Line Feed (FE) 换行(格式控制符) VT Vertical Tabulation (FE) 垂直制表(格式控制符) FF Form Feed (FE) 换页(格式控制符) CR Carriage Return (FE) 回车(格式控制符) SO Shift Out 移出 SI Shift In 移入 DLE Data Link Escape (CC) 数据连接退出(通讯控制) DC1 Device Control 1 设备控制1 DC2 Device Control 2 设备控制2 DC3 Device Control 3 设备控制3 DC4 Device Control 4 (Stop) 设备控制4(停止) NAK Negative Acknowledge (CC) 否定应答(通讯控制) SYN Synchronous Idle (CC) 同步闲置(通讯控制) ETB End of Transmission Block (CC) 传输块结束(通讯控制) CAN Cancel 取消 EM End of Medium 介质结束 SUB Substitute 替代 ESC Escap 溢出 FS File Separator (IS) 文件分隔符(信息分隔) GS Group Separator (IS) 组分隔符(信息分隔) RS Record Separator (IS) 记录分隔符(信息分隔) US Unit Separator (IS) 单元分隔符(信息分隔) DEL Delete [注1] 删除

[注1]:严格意义上讲,DEL不是一个控制符

4.2 图形化符号

列/行 符号 英文名称 中文名称 2/0 SP Space (Normally Non-Printing) 空格 (通常是非打印字符) 2/1 ! Exclamation Point 感叹号 2/2 “ Quotation Marks (Diaeresis [注2]) 引号 (分音符号 [注2]) 2/3 # Number Sign [注3,4] 数字符 [注3,4] 2/4 $ Dollar Sign 美元符 2/5 % Percent 百分号 2/6 & Ampersand and对应的符号 2/7 ‘ Apostrophe (Closing Single Quotation Mark Acute Accent [注2]) 省略符号 (右单引号,重音符号 [注2]) 2/8 ( Opening Parenthesis 左括号 2/9 ) Closing Parenthesis 右括号 2/10 * Asterisk 星号 2/11 + Plus 加号 2/12 , Comma (Cedilla [注2]) 逗号 (变音 [注2]) 2/13 - Hyphen (Minus) 连字号 (减号) 2/14 . Period (Decimal Point) 句号(小数点) 2/15 / Slant 斜杠 3/10 : Colon 冒号 3/11 ; Semicolon 分号 3/12 < Less Than 小于 3/13 = Equals 等于 3/14 > Greater Than 大于 3/15 ? Question Mark 问号 4/0 @ Commercial At [注3] 商业符号 [注3] 5/11 [ Opening Bracket [注3] 左方括号 [注3] 5/12 \ Reverse Slant [注3] 反斜杠 [注3] 5/13 ] Closing Bracket [注3] 右方括号 [注3] 5/14 ^ Circumflex [注2,3] 抑扬符号 [注2,3] 5/15 _ Underline 下划线 6/0 ` Grave Accent [注2,3] (Opening Single Quotation Mark) 沉音符[注2,3] (左单引号) 7/11 { Opening Brace [注3] 左花括号 [注3] 7/12 | Vertical Line [注3] 竖直线 [注3] 7/13 } Closing Brace [注3] 右花括号 [注3] 7/14 ~ Overline [注3] (Tilde [注2]; General Accent [注2]) 波浪线 [注3] (西班牙语发音符号 [注2]; 普通重音 [注2])

[注2]:对于 2/2, 2/7, 2/12, 5/14, 6/0,7/14 这几个位置上的符号,有另外的使用方法,参见附录A, A5.2
[注3]:在发送方和接收方没有达成统一的情况下,这些符号不可以用于国际交流。(见附录B4)
[注4]:在不需要使用#的应用中,2/3可以代表英镑

5 定义

注:这一节是对上一节的符号意义的详细说明

5.1 字符综述

(CC)Communication Control 通信控制符:功能性字符,用于控制或者协助网络进行信息传输。

(FE)Format Effector 格式控制符 : 功能性字符,用于控制信息在显示设备上的位置和布局。

(IS)Information Separator 信息分隔符 : 功能性字符,用于对信息进行分隔和限制,让信息合乎逻辑,这种字符一共有四个,这四个字符之间具有层次关系。

5.2 控制字符

  • NULL(Null): 空字符,是一个所有位全为0的字符,在通信过程中,这个字符可用于时间填充(time fill)和介质填充(media fill)。

    注:没有理解什么是时间填充和介质填充

  • SOH(Start Of Heading):头信息开始标识符,是一种通信控制字符。所谓头信息,指的是由机器可识别地址或者路由信息组成的字符串。STX的作用是头信息结束标识符。

  • STX(Start of Text):文本信息开始标识符,是一种通信控制字符。所谓文本信息,指的是一个被看做为信息实体,并完整的传输到最终目的地的字符串。一般来说,文本信息被称为”text.”。由于文本信息前面是头信息,所以STX也可以认为是以SOH开始的头信息的结束符。

  • ETX(End of Text):文本信息结束标识符,是一种通信控制符。用于表示以STX开头的文本信息的结束。

  • EOT(End of Transmission):传输结束标识符,是一种通信控制符。用于表述一次数据传输的结束,一次数据传输可能包含不止一个文本信息以及其对应的头信息。

注:基于上面这四个通信控制符基本上可以确定,网络通信过程中一个基本的数据传输单元,以SOH开头,以ETX结束,如下图所示,而一次数据传输中可以有多个基本数据传输单元。
———-image_1bec3obv3hjvpb6129o1a3314i99.png-5.8kB

  • ENQ(Enquiry):查询符,是一种通信控制符。准确的说,这个符号代表的意思是“请求(request)”,起作用是向远程主机请求数据,一般请求之后是等待应答。这里请求的内容非常的广泛,比如“WRU(who are you)”请求,其作用是识别远程主机,也可能是用于查询远程主机的状态,也可能同时表示两种功能。

  • ACK(Acknowledge):肯定应答符,是一种通信控制符。ACK是主机作为信息接收方,在准确的接收到数据之后,向信息发送方返回的一个应答消息是所使用的控制符,并且其代表的意思是肯定应答,即数据接收正常。

  • BEL(Bell):当主机出现某些特殊情况,需要人工处理的时候,就会使用这个符号(或者叫做指令),它可以控制警铃(或者其他的可以引起人注意的设备) 来引起人的注意。

  • BS(Backspace):退格符,是一种格式控制符。 让字符打印位置后退一个打印字符的空间,这个后退操作只能在同一行中执行。退格符在显示设备中也可以使用。

  • HT(Horizontal Tabulation):水平制表符,是一种格式控制符。让字符打印位置水平向前移动到下一个预先设定好的位置,每一行中可以有多个预先设定好的位置。水平制表符在显示设备和打孔机中也可以使用。

  • LF(Line Feed):换行符,是一种格式控制符。让字符打印位置移动到下一个打印行,换行符在显示设备中也可以使用。在某些情况下,换行符代表的意思可以是控制符:“新行”(NL),新行符指的是让字符打印位置移动到下一个打印行,并且是下一打印行的第一个字符打印位置,这需要发送方和接收方共同约定才能使用。

  • VT(Vertical Tabulation):垂直制表符,是一种格式控制符。
原创粉丝点击