控制字元

控制字元

控制字元(Control Character)是出現於特定的信息文本中,表示某一控制功能的字元。

基本介紹

  • 中文名:控制字元
  • 外文名:Control Character
  • 定義:表示某一控制功能的字元
  • 類型:控制功能的字元
概述,ASCII中,基本信息,其他信息,鍵盤映射,設計目的,列印和顯示控制,數據結構化,傳輸控制,零散用途,

概述

控制字元(Control Character),出現於特定的信息文本中,表示某一控制功能的字元。
在計算中,一個控制字元或非列印字元,是一個代碼標示(一個數字)是否在字元集,其自身也是書寫字母來描述的。所有輸出在32以下的ASCII表都是這個類型,包括
  • BEL(要求有聲信號來回響終端的接收);
  • SYN(同步信號);
  • ENQ(要求接收後發出回響來驗證存在);
  • Unicode標準增加了許多新的非列印字元,比如Zero-Width Non-Joiner。

ASCII中

基本信息

ASCII碼中,第0~31號及第127號(共33個)是控制字元或通訊專用字元,如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等。

其他信息

US-ASCII控制字元
Seq十進十六進縮寫字元名
00
0x00
NUL
Null (空)
^A
01
0x01
SOH
Start of Heading (報頭開始)
^B
02
0x02
STX
Start of Text (正文開始)
^C
03
0x03
ETX
End of Text (正文結束)
^D
04
0x04
EOT
End of Transmission (傳輸結束)
^E
05
0x05
ENQ
Enquiry (查詢)
^F
06
0x06
ACK
Acknowledge (確認)
^G
07
0x07
BEL
Bell (振鈴)
^H
08
0x08
BS
Backspace (退格)
^I
09
0x09
HT
Horizontal Tab (水平制表)
^J
10
0x0A
LF
Line Feed (換行)
^K
11
0x0B
VT
Vertical Tab (垂直制表)
^L
12
0x0C
FF
Form Feed (換頁)
^M
13
0x0D
CR
Carriage Return (回車)
^N
14
0x0E
SO
Shift Out (移出)
^O
15
0x0F
SI
Shift In (移入)
^P
16
0x10
DLE
Data Link Escape (數據鏈路轉義)
^Q
17
0x11
DC1
Device Control 1 (設備控制1)
^R
18
0x12
DC2
Device Control 2 (設備控制2)
^S
19
0x13
DC3
Device Control 3 (設備控制3)
^T
20
0x14
DC4
Device Control 4 (設備控制4)
^U
21
0x15
NAK
Negative Acknowledge (否認)
^V
22
0x16
SYN
Synchronous Idle (同步空閒)
^W
23
0x17
ETB
End of Transmission Block (傳輸塊結束)
^X
24
0x18
CAN
Cancel (取消)
^Y
25
0x19
EM
End of Medium (介質結束)
^Z
26
0x1A
SUB
Substitute (替換)
^[
27
0x1B
ESC
Escape (轉義)
^\
28
0x1C
FS
File Separator (檔案分隔設定)
^]
29
0x1D
GS
Group Separator (分組符)
^^
30
0x1E
RS
Record Separator (記錄分隔設定)
^_
31
0x1F
US
Unit Separator (單元分隔設定)
127
0x7F
DEL
Delete (刪除)
兼容的八位ISO/IEC 8859-1加上了從ISO/IEC 6429定義的從128到159的32個代碼,位於0x80-0x9F。
ISO-8859-n 的控制字元
十進十六進縮寫字元名
128
0x80
PAD
Padding Character(填充字元)
129
0x81
HOP
High Octet Preset(高位元組前置)
130
0x82
BPH
Break Permitted Here(此處允許中斷)
131
0x83
NBH
No Break Here(此處禁止中斷)
132
0x84
IND
Index(索引)
133
0x85
NEL
Next Line(下一行)
134
0x86
SSA
Start of Selected Area(選擇區域開始)
135
0x87
ESA
End of Selected Area(選擇區域結束)
136
0x88
HTS
Horizontal Tab Set(水平制表設定)
137
0x89
HTJ
Horizontal Tab Justified(水平制表調整)
138
0x8A
VTS
Vertical Tab Set(垂直制表設定)
139
0x8B
PLD
Partial Line Forward(部分行前移)
140
0x8C
PLU
Partial Line Backward(部分行後移)
141
0x8D
RI
Reverse Line Feed(逆向饋行)
142
0x8E
SS2
Single-Shift 2 (單個移動 2)
143
0x8F
SS3
Single-Shift 3(單個移動 3)
144
0x90
DCS
Device Control String(設備控制串)
145
0x91
PU1
Private Use 1(私用1)
146
0x92
PU2
Private Use 2(私用2)
147
0x93
STS
Set Transmit State(傳送規則設定)
148
0x94
CCH
Cancel Character(取消字元)
149
0x95
MW
Message Waiting(訊息等待)
150
0x96
SPA
Start of Protected Area(保護區域開始)
151
0x97
EPA
End of Protected Area(保護區域結束)
152
0x98
SOS
Start of String(串開始)
153
0x99
SGCI
Single Graphic Char Intro(單個圖形字元描述)
154
0x9A
SCI
Single Char Intro(單個字元描述)
155
0x9B
CSI
Control Sequence Intro(控制順序描述)
156
0x9C
ST
String Terminator(串終止)
157
0x9D
OSC
OS Command(作業系統指令)
158
0x9E
PM
Private Message(私訊)
159
0x9F
APC
App Program Command(應用程式命令)

鍵盤映射

基於ASCII的鍵盤上有個標為“Control”或"Ctrl"(有時也作"Cntl")的鍵,其用法非常類似於換檔鍵,即與其他字母或符號鍵一起按下。通過這種方式使用控制鍵將生成同時按下的字元鍵的的ASCII編碼位元組的7位中,左起的兩個字元強制定為0;從而產生出32個ASCII控制碼之一。例如,按下CTRL和字母G(十進制編碼為71,二進制為01000111),產生編碼7(振鈴符,十進制編碼7,或二進制00000111)。
鍵盤上有些單個鍵能產生控制碼。例如標為“Backspace”的鍵通常產生編碼8,“Tab”是編碼9,“Enter”或“Return”是編碼13(有些鍵盤上“Enter”可能是編碼10)。
現在的鍵盤上有些鍵沒有對應的ASCII字元或控制字元,例如游標控制鍵/箭頭鍵和字處理功能鍵。這些鍵盤和其所連線的計算機通過三種方法通信:將一些在其他情況下不使用的控制字元定義新的用法、使用其他一些非ASCII的編碼、或者使用由多個字元構成的控制序列。連線到獨立的個人電腦上的鍵盤通常用前兩種方法之一或兩者都用,啞終端通常是使用控制序列。

設計目的

控制字元被設計分為若干組:列印和顯示控制、數據結構化、傳輸控制、以及其他零散用途。

列印和顯示控制

列印控制字元最先用於控制作為最早的輸出設備的印表機的物理機件。回車(CR)意為將字元放置於紙邊開始列印處(可能要移動到下一行,也可能不是)。換行(LF)表示將下個字元放置於新行出現的方向上的下一行處(也可能同時要移動到行起始處,也可能不是)。垂直和水平制表(VT/HT)則請求印表機將列印頭移動到閱讀方向上的下個定位點置。換頁(FF)則開始一張新紙。退格(BS)將下個列印位置後退一個字元以便印表機可進行疊打而產生特殊字元(例如在文字下加下劃線,在早期的字元印表機上是先打出文字後再用退格符將列印頭退後,再疊打出下劃線的)。移入(SI)和移出(SO)用於選擇替換的字元集、字型、下劃線或其他列印模式,然而更常見的是使用其他的轉義序列來實現這些目的。
隨著不使用紙張列印、並在字元放置、刪除等方面提供了更多靈活性的終端機的出現,列印控制碼也進一步適應了這些變化。例如饋頁表示清除螢幕而非饋送下一張白紙。人們設計了更複雜的轉義序列來套用新終端和新印表機功能的優點。單個字元的控制碼已經不夠用來支持新外圍設備的所有功能了,控制字元和轉義序列之間的差別也開始變得模糊。

數據結構化

分隔設定(組、記錄等)用於將數據結構化,通常用於磁帶,為的是模擬穿孔卡片。介質結束(EM)意為警告磁帶(或其他介質)即將到達末尾。

傳輸控制

傳輸控制字元是設計用來將數據包結構化以及控制在傳輸發生錯誤時何時進行重傳的。
報頭開始(SOH)用於標記數據包中的非數據部分——即含有地址和其他內務數據報文的部分。正文開始(SOT)標記報頭的結束和正文的開始。正文結束(EOT)標記報文數據的結束。標準的常規是在正文結束符之前的兩個字元處填入報文的校驗和或CRC。
轉義符(ESC)用於在報文中放在一個正常情況下會被解釋為控制字元的二進制值前/*以避免該字元被作為控制字元解釋*/。例如二進制值27的正確用法是ESC ESC。
替換符(SUB)用於請求將下個可列印字元轉換為一個二進制值,通常是將第5位置零。由於一些傳輸介質(例如由打字機產生的紙張)僅能傳輸可列印的字元,因此用於這類情況時這樣做很方便。
取消符(CAN)中止一個包的傳輸。否認符(NAK)請求重新傳輸一個包。確認符(ACK)表示傳輸內容被正確地接收。
當傳輸介質使用半雙工(指某一時刻只能進行一個方向的傳輸)時,通常有一可在任意時間傳輸數據的主站和一個或多個可在獲得準許後進行傳輸的從站。主站使用查詢符(ENQ)來要求從站傳送其下條報文。從站通過發出傳輸結束符(EOT)來表示其已完成了傳輸。
設備控制碼原本是不特定的,是對每種設備定義不同的。然而在數據傳輸中一種普遍的需要是當接收方不能接收更多數據時需要請求傳送方立即暫停傳輸。數據設備公司發明了一套協定,其用19(DC3,也即CTRL-S或XOFF)來停止傳輸,並用17(DC1,也即CTRL-Q或XON)來開始傳輸。籍此製造商們能不必在數據纜線中用專門的傳輸控制線來控制傳輸,這節約了成本且由於減少了纜線中連線的數量也增加了作業的可靠程度。
數據鏈路轉義(DLE)告訴數據鏈路的另一端結束一個會話。/*以便對方釋放線路資源等*/

零散用途

許多ASCII控制字元是為當時使用而現在很少見到的設備而設計的。例如編碼22,同步空閒(SYN),原本用於同步數據機(其必須連續傳送數據)在沒有數據要傳送時傳送。(現在的系統一般使用起始位來告知要傳送的字的開始。)
編碼0,空字元,是個特例。它在紙帶中就是那些沒有穿孔的地方,因此把它作為不存在的字元來對待是很方便的。
編碼127同樣是個特例。在二進制編碼中它的所有位都是1,這使得它可方便地用來清除作為當時普遍使用的存儲介質的紙帶中的一段,把要清除的部分全部穿孔就成了DEL字元。紙帶很快被廢棄了,因此這個特色也幾乎不用了。
然而由於其編碼處於其他可列印的字元占用的區域中,許多計算機把它作為一個額外的可列印字元來使用(通常是一個實心的黑色方塊字元,可用疊打來蓋除文字)。

相關詞條

熱門詞條

聯絡我們