RFC20 用于网络交换的ASCII格式
标签(空格分隔): RFC
@author : [email protected]
@time : 2017-02-15
ASCII format for Network Interchange
用于网络交换的ASCII格式
一句话,我们建议使用标准的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 标准编码
注:由于ASCII编码的最高位并没有被使用,所以也有一些基于ASCII扩展的编码方式,比如扩展了“僧伽罗语”的编码,就是使用了最高位做了编码扩展。
3 字符表示和编码定义
标准的7位字符编码定义:
字符
—————–
字符在ASCII码表中的位置,也可以作为字符的表示方式,还是字符
编码表中的
上面的编码表可以简写为: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结束,如下图所示,而一次数据传输中可以有多个基本数据传输单元。
———-
ENQ(Enquiry):查询符,是一种通信控制符。准确的说,这个符号代表的意思是“请求(request)”,起作用是向远程主机请求数据,一般请求之后是等待应答。这里请求的内容非常的广泛,比如“WRU(who are you)”请求,其作用是识别远程主机,也可能是用于查询远程主机的状态,也可能同时表示两种功能。
ACK(Acknowledge):肯定应答符,是一种通信控制符。ACK是主机作为信息接收方,在准确的接收到数据之后,向信息发送方返回的一个应答消息是所使用的控制符,并且其代表的意思是肯定应答,即数据接收正常。
BEL(Bell):当主机出现某些特殊情况,需要人工处理的时候,就会使用这个符号(或者叫做指令),它可以控制警铃(或者其他的可以引起人注意的设备) 来引起人的注意。
BS(Backspace):退格符,是一种格式控制符。 让字符打印位置后退一个打印字符的空间,这个后退操作只能在同一行中执行。退格符在显示设备中也可以使用。
HT(Horizontal Tabulation):水平制表符,是一种格式控制符。让字符打印位置水平向前移动到下一个预先设定好的位置,每一行中可以有多个预先设定好的位置。水平制表符在显示设备和打孔机中也可以使用。
LF(Line Feed):换行符,是一种格式控制符。让字符打印位置移动到下一个打印行,换行符在显示设备中也可以使用。在某些情况下,换行符代表的意思可以是控制符:“新行”(NL),新行符指的是让字符打印位置移动到下一个打印行,并且是下一打印行的第一个字符打印位置,这需要发送方和接收方共同约定才能使用。
- VT(Vertical Tabulation):垂直制表符,是一种格式控制符。