ASCII(美國資訊交換標準代碼)是一種 7 位元字元編碼,為其 128 個標準字元與控制代碼各指派一個從 0 到 127 的唯一整數,而 ASCII 對照表就是一份參考列表,將每個代碼並列顯示其十進位、兩位數十六進位、三位數八進位,以及七位數二進位的對應值。原始標準於 1960 年代公布(依據 RFC 20),至今仍是現代文字檔、網路通訊協定與程式語言字串的基礎。由於同一個數字可以有多種表示法,一份清楚的對照表能省去轉換時的揣測;又因為這個標準小到可以分組記住,對照表也能說明其結構。ASCII 對照表不只是可列印的查詢表:它是單一固定、有文件記載的代碼表的精簡摘要,字元名稱則由 Unicode 基本拉丁字母對照表獨立提供。了解每一欄的意義、為什麼剛好有 128 列,以及四種表示法之間如何對應,是正確閱讀任何 ASCII 參考資料最快的方法。

為什麼表格只到 127
一份完整的 ASCII 對照表中,7 位元的界線並非資料庫的限制,而是原始設計。七個位元剛好可以表示 128 個從 0000000 到 1111111 的不同數值,這與從十進位 0 到十進位 127 的項目數量相符。ECMA-6定義了這個 7 位元、128 字元的範圍,而 RFC 20 規定了至今所有實作仍遵循的原始 ASCII 代碼表。由於這個標準是在 8 位元位元組普及之前設計的,因此刻意限制為七個位元,好讓未使用的位元能在序列傳輸線上承載控制訊號;這個設計能延續至今,是因為每個現代文字編碼(包括 UTF-8)都將前 128 個碼位保持與 ASCII 完全相同,以維持向下相容。大於 127 的數值根本不是 ASCII,即便它們常出現在 Windows 或舊版 DOS 文件儲存的檔案中。大於 127 的數值在 ISO-8859-1、Windows 代碼頁、IBM PC 代碼頁(例如 CP437)或其他編碼中,可能代表不同的字元;若將其中任何一個稱為「延伸 ASCII」,反而會掩蓋這種模糊性。因此,一份完整的對照表只到十進位 127 為止,不會混入不相容的 8 位元對應。
讀懂四種數字系統
ASCII 對照表的每一列都以四種表示法呈現同一個整數,而這種重複正是對照表主要的說明價值。十進位欄是原始整數;十六進位欄是同一個值以 16 為基底書寫,並補成兩位數,因為最大值 127 用兩位十六進位即可表示;八進位欄是同一個值以 8 為基底,並補成三位數,因為 127 的八進位是 177;二進位欄則是同一個值以 2 為基底,剛好補成七位數,因為這就是 7 位元在視覺上的呈現方式。固定寬度的補零很重要:它讓你一眼就能看出哪些位元位置被設定。以大寫 A 為例的計算過程,讓這層關係更具體。
| 表示法 | 格式 | 大寫 A |
|---|---|---|
| 十進位 | 純數字 | 65 |
| 十六進位 | 0x 前綴,兩位數 | 0x41 |
| 八進位 | 0o 前綴,三位數 | 0o101 |
| 二進位 | 0b 前綴,七位數 | 0b1000001 |
你可以用加總被設定的位元位置來驗證二進位欄:64 + 1 = 65,正好等於十進位值。0x、0o 與 0b 前綴讓進位制一目了然,這很實用,因為文件、原始碼、網路追蹤記錄與命令列工具使用不同的表示法;前綴能避免把八進位的 17 與整數 seventeen 搞混。
三種項目分類
一份完整的 ASCII 對照表將其 128 列劃分為三種邏輯上不同的類型,而一份好的對照表會讓這種差異一目了然。從十進位 0 到十進位 31 的控制位置沒有一般的可列印字形,因此對照表使用 RFC 20 所公布的縮寫與術語:NUL 代表 Null,HT 代表 Horizontal Tabulation,LF 代表 Line Feed,CR 代表 Carriage Return 等等。使用縮寫可以避免那些若試圖顯示字形就會出現空白或誤導的儲存格。十進位 32 通常不可列印,會以 SP 表示 Space。從十進位 33 到十進位 126 的圖形項目包含標點符號、0 到 9 的數字、大寫拉丁字母與小寫拉丁字母,每一個都以可見字元呈現,並附上來自 Unicode 基本拉丁字母對照表的描述性名稱。十進位 127 是 DEL(Delete),RFC 20 指出 DEL 嚴格來說並非控制字元;一份清楚的對照表會將 DEL 獨立歸類,讓可見的群組保持明確。
| 群組 | 十進位範圍 | 數量 | 呈現方式 |
|---|---|---|---|
| 控制字元 | 0–31 | 32 | RFC 20 縮寫加上完整名稱 |
| 空格 | 32 | 1 | SP |
| 圖形字元 | 33–126 | 94 | 可見字元加上名稱 |
| 刪除 | 127 | 1 | DEL |
將四個群組的數量相加,就會得到一份完整對照表全部 128 列。這樣的分群也說明了為什麼完整的對照表在十進位 0 或十進位 127 永遠不會顯示可列印符號,也說明了群組之間的視覺間隔為何能幫助你快速瀏覽參考資料。
如何查詢並複製代碼
讀對照表最快的方式,是先搜尋你眼前已有的內容,再讀取四個欄位。ASCII 對照表提供所有標準 7 位元項目,並在每一列附上四種表示法與複製按鈕。
- 開啟 ASCII 對照表,可瀏覽全部 128 列,或在搜尋框中輸入查詢條件。字元名稱、控制縮寫或數字都可以使用。
- 輸入純數字進行十進位查詢。例如,輸入 65 可找到大寫 A。
- 十六進位、八進位或二進位的查詢分別加上 0x、0o 或 0b 前綴。例如,0x41、0o101 與 0b1000001 都會對應到同一個大寫 A 列。
- 使用 char:value 格式搜尋特定字元,包含空白字元。輸入 char:space 會直接對應到十進位 32。
- 選擇分類——控制字元、標點符號、數字、字母、空格或刪除——以便在只想查看某一群組時縮小表格範圍。
- 檢視該列後,選擇 Copy 即可將整列內容(包括顯示值、名稱與全部四種數字系統)以可讀文字的形式複製到剪貼簿。
如果瀏覽器拒絕複製動作,頁面會回報失敗而非謊稱成功,這在你將該列貼到程式註解、錯誤回報或教學筆記時很重要。每個符合的列都會保持可見;此工具不會悄悄截斷大量的結果集,而空白的搜尋會顯示清楚的「無符合」狀態,而非在畫面上留下過期的輸出。搜尋詞彙與複製的列都保留在你的瀏覽器中,不會被傳送到其他服務。若想逐步了解相同操作流程,請參閱如何使用 ASCII 對照表。
對照表沒有告訴你的事
ASCII 對照表指派了碼位,但本身並不會說明每個應用程式如何解讀控制代碼、文字檔如何選擇換行符號,或現代 Unicode 字串如何編碼為位元組。CR、LF 與 CRLF 的慣例因通訊協定與平台而異,因此在對照表中看到十進位 10 是 LF,並不代表該檔案使用的是 Unix、傳統 Mac 或 DOS 的換行方式。Unicode 在相同的基本拉丁字母碼位中包含了 ASCII 範圍,但 Unicode 也延伸得遠多於此,因此前 128 個位元組相同的兩個字串,只要在 127 以上的任何位元組不同就仍會有所差異。當你需要解碼 127 以上的位元組時,第一步是判斷實際產生它的字元編碼,因為僅憑數字本身並不足夠。相同的道理也適用於對照表背後的標準:RFC 20 提供原始的 ASCII 代碼表與控制術語,ECMA-6 確認其 7 位元、128 字元的範圍,而 Unicode 基本拉丁字母對照表則獨立交叉檢核圖形字元的名稱與位置。這三者共同說明了為什麼一份完整的 ASCII 對照表能同時與現代 Unicode 及 1960 年代的原始標準保持一致。
延伸閱讀:程式碼截圖產生器:在本機將程式碼轉為 PNG。