ASCII

電腦編碼系統

ASCII發音: /ˈæski/ ASS-kee[1]American Standard Code for Information Interchange美国信息交换标准代码)是基于拉丁字母的一套电脑字符编码标准。它主要用于显示现代英语,而其擴展版本延伸美国标准信息交换码則可以部分支持其他西欧语言,并等同于国际标准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)、LinuxFreeBSD,都可用Ctrl代表脫出字元,輸入想要的ASCII控制字元。例如想輸入空字符,就要輸入Ctrl+2,而非^@,後者會顯示成兩字元,前者只會顯示成一字元。
ASCII控制字符(共33个)
二进制十进制十六进制缩写Unicode
表示法
脫出字元
表示法
名称/意义
0000 0000000NUL^@空字符(Null)
0000 0001101SOH^A标题开始
0000 0010202STX^B本文开始
0000 0011303ETX^C本文结束
0000 0100404EOT^D傳輸结束
0000 0101505ENQ^E请求
0000 0110606ACK^F確認回應
0000 0111707BEL^G响铃
0000 1000808BS^H退格
0000 1001909HT^I水平定位符號
0000 1010100ALF^J换行键
0000 1011110BVT^K垂直定位符號
0000 1100120CFF^L换页键
0000 1101130DCR^MCR (字元)
0000 1110140ESO^N取消變换(Shift out)
0000 1111150FSI^O启用變换(Shift in)
0001 00001610DLE^P跳出数据通讯
0001 00011711DC1^Q設備控制一(XON 啟用軟體速度控制)
0001 00101812DC2^R設備控制二
0001 00111913DC3^S設備控制三(XOFF 停用軟體速度控制)
0001 01002014DC4^T設備控制四
0001 01012115NAK^U確認失敗回應
0001 01102216SYN^V同步用暫停
0001 01112317ETB^W區塊傳輸结束
0001 10002418CAN^X取消
0001 10012519EM^Y連線介质中断
0001 1010261ASUB^Z替換
0001 1011271BESC^[退出键
0001 1100281CFS^\文件分割符
0001 1101291DGS^]群組分隔符
0001 1110301ERS^^记录分隔符
0001 1111311FUS^_单元分隔符
0111 11111277FDEL^?Delete字符

可显示字符

可显示字符编号范围是32-126(0x20-0x7E),共95个字符。

32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。

65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

ASCII可显示字符(共95个)
二进制十进制十六进制图形
0010 00003220(space)
0010 00013321!
0010 00103422"
0010 00113523#
0010 01003624$
0010 01013725%
0010 01103826&
0010 01113927'
0010 10004028(
0010 10014129)
0010 1010422A*
0010 1011432B+
0010 1100442C,
0010 1101452D-
0010 1110462E.
0010 1111472F/
0011 000048300
0011 000149311
0011 001050322
0011 001151333
0011 010052344
0011 010153355
0011 011054366
0011 011155377
0011 100056388
0011 100157399
0011 1010583A:
0011 1011593B;
0011 1100603C<
0011 1101613D=
0011 1110623E>
0011 1111633F?
二进制十进制十六进制图形
0100 00006440@
0100 00016541A
0100 00106642B
0100 00116743C
0100 01006844D
0100 01016945E
0100 01107046F
0100 01117147G
0100 10007248H
0100 10017349I
0100 1010744AJ
0100 1011754BK
0100 1100764CL
0100 1101774DM
0100 1110784EN
0100 1111794FO
0101 00008050P
0101 00018151Q
0101 00108252R
0101 00118353S
0101 01008454T
0101 01018555U
0101 01108656V
0101 01118757W
0101 10008858X
0101 10018959Y
0101 1010905AZ
0101 1011915B[
0101 1100925C\
0101 1101935D]
0101 1110945E^
0101 1111955F_
二进制十进制十六进制图形
0110 00009660`
0110 00019761a
0110 00109862b
0110 00119963c
0110 010010064d
0110 010110165e
0110 011010266f
0110 011110367g
0110 100010468h
0110 100110569i
0110 10101066Aj
0110 10111076Bk
0110 11001086Cl
0110 11011096Dm
0110 11101106En
0110 11111116Fo
0111 000011270p
0111 000111371q
0111 001011472r
0111 001111573s
0111 010011674t
0111 010111775u
0111 011011876v
0111 011111977w
0111 100012078x
0111 100112179y
0111 10101227Az
0111 10111237B{
0111 11001247C|
0111 11011257D}
0111 11101267E~

缺點

ASCII的局限在於只能顯示26個基本拉丁字母、阿拉伯數字和英式標點符號,因此只能用於顯示現代美國英語(且處理naïve、café、élite等外來語時,必須去除附加符號)。雖然EASCII解決了部分西歐語言的顯示問題,但對更多其他語言依然無能為力。因此,現在的软件系统大多采用Unicode,特别是与ASCII向下兼容的UTF-8

参见

参考资料