ASCII 编码
ASCII(发音: /ˈæski/ ASS-kee,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑字符编码标准。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。
美国信息交换标准代码是这套编码标准的传统命名,互联网号码分配局现在更倾向于使用它的新名字US-ASCII。
美国信息交换标准代码是美国电气和电子工程师协会里程碑之一。
ASCII 由电报码发展而来。第一版标准发布于1963年,1967年经历了一次主要修订,最后一次更新则是在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),适用于所有拉丁字母。
可显示字符
可显示字符编号范围是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 |
_
|
|
二进制
|
十进制
|
十六进制
|
图形
|
0110 0000 |
96
|
60 |
`
|
0110 0001 |
97
|
61 |
a
|
0110 0010 |
98
|
62 |
b
|
0110 0011 |
99
|
63 |
c
|
0110 0100 |
100
|
64 |
d
|
0110 0101 |
101
|
65 |
e
|
0110 0110 |
102
|
66 |
f
|
0110 0111 |
103
|
67 |
g
|
0110 1000 |
104
|
68 |
h
|
0110 1001 |
105
|
69 |
i
|
0110 1010 |
106
|
6A |
j
|
0110 1011 |
107
|
6B |
k
|
0110 1100 |
108
|
6C |
l
|
0110 1101 |
109
|
6D |
m
|
0110 1110 |
110 |
6E |
n
|
0110 1111 |
111
|
6F |
o
|
0111 0000 |
112
|
70 |
p
|
0111 0001 |
113
|
71 |
q
|
0111 0010 |
114
|
72 |
r
|
0111 0011 |
115
|
73 |
s
|
0111 0100 |
116
|
74 |
t
|
0111 0101 |
117
|
75 |
u
|
0111 0110 |
118
|
76 |
v
|
0111 0111 |
119
|
77 |
w
|
0111 1000 |
120
|
78 |
x
|
0111 1001 |
121
|
79 |
y
|
0111 1010 |
122
|
7A |
z
|
0111 1011 |
123
|
7B |
{
|
0111 1100 |
124
|
7C |
|
|
0111 1101 |
125
|
7D |
}
|
0111 1110 |
126
|
7E |
~
|
|
缺点
ASCII的局限在于只能显示26个基本拉丁字母、阿拉伯数字和英式标点符号,因此只能用于显示现代美国英语(且处理naïve、café、élite等外来语时,必须去除附加符号)。虽然EASCII解决了部分西欧语言的显示问题,但对更多其他语言依然无能为力。因此,现在的软件系统大多采用Unicode,特别是与ASCII向下兼容的UTF-8。
1972年的ASCII图表