ISO-8859 字元編碼矩陣已就緒
ASCII 字元對照表
完整的 ASCII 字元查詢對照工具。涵蓋 0–255 所有代碼,支援 Decimal、Hex、Binary、Unicode 即時搜尋,內建文字轉換器、收藏與最近查詢功能。
ASCII 轉換器
支援 Decimal / Hex / Binary / Octal 互轉
輸入格式:
輸入內容後點擊轉換...
輸出格式:
常用控制字元
ASCII 字元表
128 筆
沒有符合的字元
ASCII 是什麼?
ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是電腦系統中最基礎的字元編碼標準。它使用 7 位元(bit)表示 128 個字元,包含英文字母(A-Z, a-z)、數字(0-9)、標點符號及控制字元。
ASCII 編碼於 1963 年首次發布,最初是為電報通訊設計的。由於其簡單、通用,至今仍是所有現代文字編碼系統(如 Unicode、UTF-8)的基礎。
重點: ASCII 只用了 7 位元(0–127),因為早期通訊線路一次只能傳送 7 位元資料,第 8 位元通常被用作奇偶校驗。
ASCII 與 Unicode 的差異
| 比較項目 | ASCII | Unicode |
|---|---|---|
| 位元數 | 7 位元 | 可變(UTF-8, UTF-16, UTF-32) |
| 字元數 | 128(基本) | 超過 149,000 個 |
| 語言支援 | 僅英文 | 全球所有語言 + 表情符號 |
| 相容性 | — | 前向相容 ASCII(UTF-8) |
| 發佈年份 | 1963 | 1991 |
| 應用場景 | 舊系統、嵌入式、純英文 | 網頁、現代應用、多語言 |
LF、CR、CRLF 差異
這三種都是「換行」符號,但不同作業系統使用不同慣例:
| 符號 | 數值 | 使用系統 | 說明 |
|---|---|---|---|
| LF | 10 (0x0A) | Linux / macOS | Line Feed,游標下移一行 |
| CR | 13 (0x0D) | Classic Mac (OS 9) | Carriage Return,游標回到行首 |
| CRLF | 13 10 (0x0D 0x0A) | Windows | 回車 + 換行,兩者組合 |
Git 可以在 .gitattributes 中設定自動轉換不同平台的換行符號。
為什麼 ASCII 只有 128 個字元?
ASCII 使用 7 位元編碼,2⁷ = 128,因此最多只能表示 128 個字元。原因如下:
- 歷史限制:1960 年代的通訊設備使用 7 位元傳輸,第 8 位元保留為奇偶校驗位(parity bit),用於基本的錯誤檢測。
- 成本考量:當時記憶體和儲存空間極其昂貴,7 位元已經足夠涵蓋所有英文字母、數字和基本符號。
- 設計目標:ASCII 只為英文設計,不需要容納其他語系的字元。
後來為了解決 128 個字元不夠用的問題,出現了延伸 ASCII(Extended ASCII, 128–255),以及最終的 Unicode 標準。
ASCII 常見 FAQ
什麼是 Extended ASCII(延伸 ASCII)?
Extended ASCII 是將標準 ASCII(0–127)擴展到 8 位元(128–255)的編碼方式。但由於沒有統一標準,不同系統(如 IBM PC、Apple Mac)使用不同的 Code Page(代碼頁),導致同一個 128–255 的數值在不同系統上可能顯示不同字元。常見的 Code Page 包含 Windows-1252、ISO-8859-1(Latin-1)等。
ASCII 和 UTF-8 有什麼關係?
UTF-8 是 Unicode 的一種編碼方式,它完全向後相容 ASCII。也就是說,所有 ASCII 字元(0–127)在 UTF-8 中的編碼與 ASCII 完全相同(只需要 1 個位元組)。因此,任何有效的 ASCII 文字同時也是有效的 UTF-8 文字。這就是為什麼 UTF-8 成為網際網路最主流的編碼方式。
如何查詢一個字元的 ASCII 值?
可以使用多種方法:
1. 程式語言:
2. 在本工具的「ASCII 轉換器」中直接輸入文字即可看到對應的十進位數值
3. 在本工具的搜尋框中輸入字元即可找到對應的所有編碼資訊
1. 程式語言:
'A'.charCodeAt(0)(JavaScript)或 ord('A')(Python)2. 在本工具的「ASCII 轉換器」中直接輸入文字即可看到對應的十進位數值
3. 在本工具的搜尋框中輸入字元即可找到對應的所有編碼資訊
ASCII 中的控制字元有什麼用途?
控制字元(0–31)在現代系統中大多已不再直接使用,但它們在歷史上和特定場景中仍然重要:
- NUL (0):C 語言的字串終止符
- BEL (7):終端機發出嗶聲
- BS (8):退格鍵
- TAB (9):製表符(縮排)
- LF (10):Unix/Linux 換行
- CR (13):回車
- ESC (27):Escape 鍵,常用於終端機控制序列
- DEL (127):刪除鍵
這些字元在網路協定、序列通訊、印表機控制等領域仍然活躍。
- NUL (0):C 語言的字串終止符
- BEL (7):終端機發出嗶聲
- BS (8):退格鍵
- TAB (9):製表符(縮排)
- LF (10):Unix/Linux 換行
- CR (13):回車
- ESC (27):Escape 鍵,常用於終端機控制序列
- DEL (127):刪除鍵
這些字元在網路協定、序列通訊、印表機控制等領域仍然活躍。
什麼是 Code Page(代碼頁)?
Code Page 是 IBM 和 Microsoft 定義的字元編碼表,用於指定 128–255 範圍(Extended ASCII)的顯示方式。不同語言使用不同的 Code Page,例如:
- CP437:IBM PC 原始代碼頁(包含框線繪製字元)
- Windows-1252:西歐語系(取代 ISO-8859-1)
- CP850:Latin-1(用於 DOS)
在 Unicode 普及之前,Code Page 是處理多國語言的唯一方式。
- CP437:IBM PC 原始代碼頁(包含框線繪製字元)
- Windows-1252:西歐語系(取代 ISO-8859-1)
- CP850:Latin-1(用於 DOS)
在 Unicode 普及之前,Code Page 是處理多國語言的唯一方式。
什麼是 NUL 字元 (0x00)?
NUL(Null character)是 ASCII 碼 0 的控制字元。它不代表「空白」或「空格」,而是表示「無字元」。在 C 語言中,NUL 被用作字串的結尾標記(null-terminator)。在二進位檔案中,NUL 常被用作填充(padding)或分隔符。注意不要與 C 語言的 NULL(空指標)混淆,兩者完全不同。
為什麼 'A' 是 65?這不是隨便定的嗎?
ASCII 的編碼順序是有邏輯的:
- 數字 (0–9):編碼 48–57(0x30–0x39),方便程式可以透過減去 48 快速轉換為數值
- 大寫字母 (A–Z):編碼 65–90(0x41–0x5A)
- 小寫字母 (a–z):編碼 97–122(0x61–0x7A)
大小寫字母之間固定相差 32(0x20),這讓大小寫轉換只需要 bit 運算:小寫 = 大寫 | 0x20,大寫 = 小寫 & ~0x20。這種設計在早期記憶體和 CPU 資源極度有限的時代非常關鍵。
- 數字 (0–9):編碼 48–57(0x30–0x39),方便程式可以透過減去 48 快速轉換為數值
- 大寫字母 (A–Z):編碼 65–90(0x41–0x5A)
- 小寫字母 (a–z):編碼 97–122(0x61–0x7A)
大小寫字母之間固定相差 32(0x20),這讓大小寫轉換只需要 bit 運算:小寫 = 大寫 | 0x20,大寫 = 小寫 & ~0x20。這種設計在早期記憶體和 CPU 資源極度有限的時代非常關鍵。