ASCII (發音: ASS -kee[ 1] ,A merican S tandard C ode for I nformation I nterchange ,美国信息交换标准代码 )是基于拉丁字母 的一套电脑 字符编码 标准。它主要用于显示现代英语 ,而其擴展版本延伸美国标准信息交换码 則可以部分支持其他西欧 语言 ,并等同于国际标准ISO/IEC 646 。
美国信息交换标准代码是这套编码标准的传统命名,互联网号码分配局 现在更倾向于使用它的新名字US-ASCII [ 2] 。
美国信息交换标准代码是美國電氣和電子工程師協會里程碑 之一。
ASCII 由电报码发展而来。第一版标准发布于1963年[ 3] [ 4] ,1967年经历了一次主要修订[ 5] [ 6] ,最後一次更新則是在1986年,至今為止共定義了128個字元 ;其中33個字元無法顯示(一些终端提供了扩展,使得这些字符可顯示为諸如笑臉、撲克牌 花式等8-bit符號),且這33個字元多數都已是陳廢的控制字元 。控制字元的用途主要是用來操控已經處理過的文字。在33個字元之外的是95個可顯示的字元。用鍵盤 敲下空白鍵所產生的空白字元也算1個可顯示字元(顯示為空白)。
技术背景
在计算机中,所有的数据在存储和运算时都要使用二进制数 表示。例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,这就是编码 。如果不同的计算机要想互相通信而不造成混乱,那么每台计算机就必须使用相同的编码规则,于是美国有关的标准化组织 就推出了ASCII编码。
ASCII是由美国国家标准学会 (American National Standard Institute,ANSI)制定的,使用标准的单字节字符编码方案,用于基于文本的数据。方案起始于50年代后期,在1967年定案。它最初是美国的标准,供不同计算机在相互通信时需共同遵守的西文字符编码标准。现已被国际标准化组织 (International Organization for Standardization,ISO)定为国际标准(ISO/IEC 646 ),适用于所有拉丁字母。
控制字符
ASCII控制字符 的编号范围是0-31和127(16进制 :0x00-0x1F和0x7F),共33个字符。
为方便人类用户阅读,各个控制字符均有Unicode 表示法和脫出字元 表示法:
Unicode表示法:當想在畫面或紙上表示這些控制字元時,就會顯示成這個樣子。過於老舊的系統或瀏覽器可能會看不到。使用微軟任一中文輸入法,輸入`U2400即可看到␀,輸入`U2401可看到␁,依此類推。
脫出字元表示法:通常用於終端機 連線(例如Telnet 通訊協定),以脫出字元^開頭,再接一個符號,用來讓這些控制字元得以在畫面上顯現。雖然看起來是兩個字元,但在終端機上實際只有一個字元。在絕大部分的終端機系統中,包括Windows 的命令提示字元 (cmd.exe)、Linux 和FreeBSD ,都可用Ctrl 代表脫出字元,輸入想要的ASCII控制字元。例如想輸入空字符,就要輸入Ctrl +2 ,而非^ @ ,後者會顯示成兩字元,前者只會顯示成一字元。
可显示字符
可显示字符也称为可打印字符,其编号范围是32-126(0x20-0x7E),共95个字符。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
ASCII可显示字符(共95个)
二进制
十进制
十六进制
图形
0010 0000
32
20
(space )
0010 0001
33
21
!
0010 0010
34
22
"
0010 0011
35
23
#
0010 0100
36
24
$
0010 0101
37
25
%
0010 0110
38
26
&
0010 0111
39
27
'
0010 1000
40
28
(
0010 1001
41
29
)
0010 1010
42
2A
*
0010 1011
43
2B
+
0010 1100
44
2C
,
0010 1101
45
2D
-
0010 1110
46
2E
.
0010 1111
47
2F
/
0011 0000
48
30
0
0011 0001
49
31
1
0011 0010
50
32
2
0011 0011
51
33
3
0011 0100
52
34
4
0011 0101
53
35
5
0011 0110
54
36
6
0011 0111
55
37
7
0011 1000
56
38
8
0011 1001
57
39
9
0011 1010
58
3A
:
0011 1011
59
3B
;
0011 1100
60
3C
<
0011 1101
61
3D
=
0011 1110
62
3E
>
0011 1111
63
3F
?
二进制
十进制
十六进制
图形
0100 0000
64
40
@
0100 0001
65
41
A
0100 0010
66
42
B
0100 0011
67
43
C
0100 0100
68
44
D
0100 0101
69
45
E
0100 0110
70
46
F
0100 0111
71
47
G
0100 1000
72
48
H
0100 1001
73
49
I
0100 1010
74
4A
J
0100 1011
75
4B
K
0100 1100
76
4C
L
0100 1101
77
4D
M
0100 1110
78
4E
N
0100 1111
79
4F
O
0101 0000
80
50
P
0101 0001
81
51
Q
0101 0010
82
52
R
0101 0011
83
53
S
0101 0100
84
54
T
0101 0101
85
55
U
0101 0110
86
56
V
0101 0111
87
57
W
0101 1000
88
58
X
0101 1001
89
59
Y
0101 1010
90
5A
Z
0101 1011
91
5B
[
0101 1100
92
5C
\
0101 1101
93
5D
]
0101 1110
94
5E
^
0101 1111
95
5F
_
缺點
ASCII的局限在於只能顯示26個基本拉丁字母、阿拉伯數字和英式標點符號,因此只能用於顯示現代美國英語(且處理naïve、café、élite等外來語 時,必須去除附加符號 )。雖然EASCII解決了部分西歐語言的顯示問題,但對更多其他語言依然無能為力。因此,現在的软件系统大多采用Unicode ,特别是与ASCII向下兼容的UTF-8 。
参见
参考资料