ASCII

ASCII（ˈ，American Standard Code for Information Interchange，美國標準資訊交換碼）是基於拉丁字母的一套電腦字符編碼標準。它主要用於顯示現代英語，而其擴展版本延伸美國標準資訊交換碼則可以部分支持其他西歐語言，並等同於國際標準ISO/IEC 646。

ASCII是這套編碼標準的傳統命名，網際網路號碼分配局現在更傾向於使用它的新名字US-ASCII。

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），適用於所有拉丁字母。

## 控制字符

ASCII控制字符的編號範圍是0-31和127（16進位：0x00-0x1F和0x7F），共33個字符。

為方便人類使用者閱讀，各個控制字符均有Unicode表示法和脫出字元表示法：

- Unicode表示法：當想在畫面或紙上表示這些控制字元時，就會顯示成這個樣子。過於老舊的系統或瀏覽器可能會看不到。使用微軟任一中文輸入法，輸入`U2400即可看到␀，輸入`U2401可看到␁，依此類推。
- 脫出字元表示法：通常用於終端機連線（例如Telnet通訊協定），以脫出字元^開頭，再接一個符號，用來讓這些控制字元得以在畫面上顯現。雖然看起來是兩個字元，但在終端機上實際只有一個字元。在絕大部分的終端機系統中，包括Windows的命令提示字元（cmd.exe）、Linux和FreeBSD，都可用Ctrl代表脫出字元，輸入想要的ASCII控制字元。例如想輸入空字符，就要輸入Ctrl+2，而非，後者會顯示成兩字元，前者只會顯示成一字元。

二進位｜十進位｜十六進位｜縮寫｜Unicode表示法｜脫出字元表示法｜名稱／意義

0000 0000｜0｜00｜NUL｜␀｜^@｜空字符（Null）

0000 0001｜1｜01｜SOH｜␁｜^A｜標題開始

0000 0010｜2｜02｜STX｜␂｜^B｜本文開始

0000 0011｜3｜03｜ETX｜␃｜^C｜本文結束字符

0000 0100｜4｜04｜EOT｜␄｜^D｜傳輸結束

0000 0101｜5｜05｜ENQ｜␅｜^E｜詢問字符

0000 0110｜6｜06｜ACK｜␆｜^F｜確認回應

0000 0111｜7｜07｜BEL｜␇｜^G｜響鈴字符

0000 1000｜8｜08｜BS｜␈｜^H｜退格

0000 1001｜9｜09｜HT｜␉｜^I｜水平定位符號

0000 1010｜10｜0A｜LF｜␊｜^J｜換行

0000 1011｜11｜0B｜VT｜␋｜^K｜垂直定位符號

0000 1100｜12｜0C｜FF｜␌｜^L｜換頁鍵

0000 1101｜13｜0D｜CR｜␍｜^M｜回車符

0000 1110｜14｜0E｜SO｜␎｜^N｜取消變換（Shift out）

0000 1111｜15｜0F｜SI｜␏｜^O｜啟用變換（Shift in）

0001 0000｜16｜10｜DLE｜␐｜^P｜跳出數據通訊

0001 0001｜17｜11｜DC1｜␑｜^Q｜設備控制一（XON 啟用軟體速度控制）

0001 0010｜18｜12｜DC2｜␒｜^R｜設備控制二

0001 0011｜19｜13｜DC3｜␓｜^S｜設備控制三（XOFF 停用軟體速度控制）

0001 0100｜20｜14｜DC4｜␔｜^T｜設備控制四

0001 0101｜21｜15｜NAK｜␕｜^U｜確認失敗回應

0001 0110｜22｜16｜SYN｜␖｜^V｜同步用暫停

0001 0111｜23｜17｜ETB｜␗｜^W｜區塊傳輸結束字元

0001 1000｜24｜18｜CAN｜␘｜^X｜取消字符

0001 1001｜25｜19｜EM｜␙｜^Y｜連線介質中斷

0001 1010｜26｜1A｜SUB｜␚｜^Z｜替換

0001 1011｜27｜1B｜ESC｜␛｜^｜退出鍵

0001 1100｜28｜1C｜FS｜␜｜^\｜文件分割符

0001 1101｜29｜1D｜GS｜␝｜^｜群組分隔符

0001 1110｜30｜1E｜RS｜␞｜^^｜記錄分隔符

0001 1111｜31｜1F｜US｜␟｜^_｜單元分隔符

0111 1111｜127｜7F｜DEL｜␡｜^?｜Delete字符

## 可顯示字符

可顯示字符也稱為可列印字符，其編號範圍是32-126（0x20-0x7E），共95個字符。

32～126(共95個)是字符(32是空格)，其中48～57為0到9十個阿拉伯數字。

65～90為26個大寫英文字母，97～122號為26個小寫英文字母，其餘為一些標點符號、運算符號等。

二進位｜十進位｜十六進位｜圖形 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 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。