ascii chart example
ASCII 圖表範例:四種表示法的標準 7 位元碼

ASCII 圖表範例的樣貌

標準 ASCII 圖表是一個 128 列的參考表格,將從十進位 0 到十進位 127 的每個整數對應到單一字元或控制縮寫,並以四種表示法顯示每個碼位——十進位、兩位數十六進位、三位數八進位,以及七位數二進位——同時附上可見字形、描述性名稱與分類。一個典型的 ASCII 圖表範例列看起來如下:大寫字母 A 顯示為十進位 65、十六進位 0x41、八進位 0o101,以及二進位 0b1000001,列印字形為 "A",名稱為 "Latin Capital Letter A",分類為 "Uppercase Letter"。此圖表直接依據 RFC 20 與 Unicode Basic Latin 碼表建立,因此碼位與名稱與兩項標準一致,而控制位置的縮寫(例如 NUL、HT、LF、CR、DEL)則遵循 RFC 20 的控制術語。由於該表格是單一且具確定性的 128 個項目清單,因此無論您在何處查看符合標準的參考資料,ASCII 圖表範例都是相同的:每個整數只出現一次,沒有重複的列,也沒有缺漏。

針對可列印符號的 ASCII 圖表範例會包含可見字形,而針對控制位置的範例則改為顯示縮寫與完整的描述性名稱。該圖表並不會為缺乏可列印字形的控制項虛構空白儲存格,也不會將多個字元對應到同一個十進位值。每個十進位位置都剛好對應一列,而該列包含同一個整數的所有四種表示法。正是這個特性讓此表格適合作為程式碼註解、協定註記、網路追蹤資料與教學教材的查詢參考:您可以讀取四種表示法中的任何一個,便能找到對應的列而不會產生混淆,並且可以在文件註解中直接引用四種表示法的任何一種而無需事先轉換。

可列印字元範例:字母、數字、標點符號

ASCII 圖表範例的可列印部分涵蓋十進位 32 到十進位 126,區分為位於 32 的 Space 字元、較低圖形範圍中的標點符號、十進位 48 到 57 的數字 0 到 9、65 到 90 的大寫拉丁字母,以及 97 到 126 的小寫拉丁字母。本網站上的 ASCII Table 參考頁將這些項目逐一列為可直接複製的列,但下方的小型表格示範了真實 ASCII 圖表範例在跨分類的幾個代表性項目中的結構。

字形名稱十進位十六進位八進位二進位分類
" "Space (SP)320x200o0400b0100000Space
"0"Digit Zero480x300o0600b0110000Digit
"?"Question Mark630x3F0o0770b0111111Punctuation
"A"Latin Capital Letter A650x410o1010b1000001Uppercase Letter
"a"Latin Small Letter A970x610o1410b1100001Lowercase Letter

大寫字母與其對應小寫字母之間的關係,是圖表一眼就能看出最實用的特性之一:小寫 "a" (97) 剛好比大寫 "A" (65) 多 32,這就是在許多語言中可以透過在十進位代碼上加減 32 來切換大小寫的原因。相同的模式適用於所有其他成對的拉丁字母,因此 "Z" (90) 的圖表範例位於 "z" (122) 下方 32 個代碼處。理解這個結構能讓此表格從扁平清單轉變為 ASCII 算術的精簡心智模型,並能說明為何簡單的位元運算與算術技巧會以那樣的方式運作。

標點符號項目集中在十進位 33 到 47 的較低圖形範圍,接著在 58 到 64 的範圍,最後在 91 到 96,方括號與大括號則填滿大寫與小寫區塊之間的區域。每個可列印字形都有一個取自 Unicode Basic Latin 圖表的固定寬度名稱,因此同一列在任何符合標準的工具中都會顯示相同的名稱。針對可列印項目的 ASCII 圖表範例一律會將字形與其完整的 Unicode 名稱配對,即使目前使用的字型以不尋常的方式呈現該字元,或在終端機中該字元不可見,也能讓程式碼註解保持明確無歧義。

控制字元範例:RFC 20 縮寫

針對控制位置的 ASCII 圖表範例不會顯示可列印字形,因為十進位 0 到 31 以及十進位 127 的位置沒有一般的字母、數字或符號。RFC 20 提供了這些位置的標準縮寫與完整名稱,圖表在字形欄位中顯示縮寫,讓該列不會出現空白或誤導性的內容。下表是取自同一個 128 項目表格的代表性控制列之 ASCII 圖表範例。

縮寫名稱十進位十六進位八進位二進位分類
NULNull00x000o0000b0000000Control
HTHorizontal Tabulation90x090o0110b0001001Control
LFLine Feed100x0A0o0120b0001010Control
CRCarriage Return130x0D0o0150b0001101Control
DELDelete1270x7F0o1770b1111111Delete

其中三個控制列值得特別注意,因為它們會影響檔案格式與網路協定。十進位 9 的 HT 是定位點分隔檔案、記錄行,以及許多原始碼縮排所使用的定位位元組。十進位 10 的 LF 是 Unix、Linux 及現代 macOS 文字檔中的行結尾符號,而十進位 13 的 CR 是傳統 Mac OS 中的行結尾符號,也是 Windows 與 HTTP 中 CRLF 序列內 LF 常見的搭檔。將 HT、LF 與 CR 並列顯示的 ASCII 圖表範例,通常是解釋為何同一個文字檔在一個平台上顯示正常,卻在另一個平台上顯示為單一行的最快方式。十進位 32 的 Space 字元明確顯示為 SP,並被歸入其本身的分類,因為 RFC 20 將其視為通常不可列印的圖形而非控制字元;而十進位 127 的 DEL 則被歸入其本身的 Delete 分類,因為 RFC 20 註明 DEL 並非嚴格意義上的控制字元。

如何查詢任何 ASCII 圖表範例

  1. 在瀏覽器中開啟 ASCII Table 參考頁,這樣您就可以在本機瀏覽、搜尋並複製列,而無需將搜尋詞或複製的內容傳送至遠端服務。
  2. 在完整檢視中捲動瀏覽全部 128 列,或者若您已知道要查詢的內容,可直接在搜尋框中輸入該值。
  3. 選擇分類篩選器——Controls、Punctuation、Digits、Uppercase、Lowercase、Space 或 Delete——在完整表格過於寬廣而不適合當前任務時,將圖表縮減為子集。
  4. 閱讀您需要的列。每一列皆以十進位、兩位數十六進位、三位數八進位,以及七位數二進位顯示同一個代碼,並附上字形或縮寫、描述性名稱與分類。
  5. 在該列上選擇 Copy(複製),即可將完整列以包含全部四種表示法的可讀文字格式寫入您的剪貼簿。若瀏覽器拒絕剪貼簿存取權限,該頁面會回報失敗,而非回報複製成功。

搜尋語法範例:十進位、十六進位、八進位、二進位

ASCII 圖表範例工具中的搜尋框比嚴格的數值查詢更為寬鬆。純數字會被解讀為十進位,因此輸入 65 會找到十進位 65 對應大寫 A 的那一列,而輸入 48 則會找到對應數字零的列。若要分別以十六進位、八進位或二進位查詢項目,請在數值前加上 0x、0o 或 0b 字首,因此 0x41、0o101 與 0b1000001 都會傳回與十進位 65 相同的大寫 A 列。加上字首的表示法能讓搜尋完全精確比對,這可防止 65 同時匹配到十進位 165 或 650,也可防止 10 被誤認為二進位值。

若要進行字面字元查詢,請使用 char:value 語法。輸入 char:A 會找到字形為大寫字母 A 的那一列,輸入 char:0 會找到對應數字零的列,輸入 char:space 則會找到十進位 32 的那一列,雖然 space 並沒有一般的列印字形。相同的語法在需要時也適用於控制縮寫,並可讓您將無法輕易輸入的字元貼上搜尋框。同時也接受以 line feed、question mark 或 capital letter 等詞彙進行搜尋,因此 ASCII 圖表範例既可透過名稱,也可透過編號來取得,且空白結果狀態會明確顯示,而不會在畫面上留下過時的列。

為何標準 ASCII 圖表範例止於 127

標準 ASCII 是一個 7 位元編碼字元集,這表示每個碼位寬度為 7 個位元,因此最多能表示 128 個不同的值。ECMA-6 確認了這個 128 字元的範圍,而 RFC 20 則明確列出這 128 個碼位。因此,ASCII 圖表範例永遠不會包含十進位 128、200 或 255,即便這些位元組值在實際檔案中很常見。127 以上的位元組值屬於其他編碼,例如 ISO-8859-1、Windows 字碼頁,以及 IBM PC 字碼頁(例如 CP437),而且依據產生該位元組的編碼,相同的位元組可能對應到不同的字元。將所有這些值通稱為「延伸 ASCII」會隱藏一項重要的歧義,這就是為何符合標準的圖表止於十進位 127,而不會將不相容的 8 位元對應合併到單一表格中。

實際的影響是:若您在檔案、網路追蹤資料或字串常值中遇到 127 以上的值,第一步應是識別實際產生該值的字元編碼,而非在標準 ASCII 圖表範例中查詢它。選擇編碼是解碼的一部分,因為僅憑數字並不足夠。一旦識別出編碼,便可另外查詢該編碼對應的表格。對於純粹的 7 位元 ASCII 工作——大多數的原始碼、設定檔、網路協定與結構化文字——這個 128 項目的圖表已完整且足夠,這就是它長期以來一直是標準參考的原因,也是符合標準的範例永遠不會聲稱涵蓋標準 ASCII 實際上未定義之位元組的原因。

延伸閱讀:Chmod 計算機範例:Setuid、Sticky 與 rwx。

延伸閱讀:Box Shadow 產生器範例:從滑桿到 CSS。