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):垂直製表符,是一種格式控制符。