ASCII 編碼轉換器會將標準 7 位元 ASCII 字元集中的每個字元轉成介於 0 到 127 之間的固定十進位整數,並從這些十進位整數重建原始文字。這個標準本身定義於 IETF RFC 20 並與 Unicode 的 C0 控制碼與基本拉丁文表相互對照,為這 128 個字元中的每一個都指派一個唯一的編號,包括 33 個不可列印的控制碼、標點符號、數字 0–9、大寫字母 A–Z、小寫字母 a–z、空格,以及 DEL。由於指派是固定且一對一的,無論是正向或反向轉換都是一種確定性的查表,而非翻譯。像 ASCII 轉換器 這類實用的工具嚴格遵守這個界線:它只接受 0–127 範圍內的輸入,對超出該範圍的任何輸入都會以明確的錯誤訊息拒絕,並且整個編碼或解碼過程都在當前的瀏覽器分頁中本機執行。這使得 ASCII 編碼轉換成為人類可讀文字與機器可讀數字之間最簡單且最可預期的對應之一。

ascii code converter explained
ASCII 編碼轉換器詳解:字元與其編碼

標準 ASCII 有限的 7 位元範圍

標準 7 位元 ASCII 使用 7 個二進位位元,這給出了 27 = 128 個可能值,編號從 0 到 127。這是發布於 1960 年代、最初版本的美國資訊交換標準碼,並在 IETF RFC 20 中正式化,也反映在 Unicode 的 C0 控制碼與基本拉丁文表中。這 128 個字元集劃分為定義明確的幾個區域:

類別十進位範圍範例值
C0 控制碼0–319 (TAB)、10 (LF)、13 (CR)
可列印的空格32空格
標點符號與符號33–47、58–64、91–96、123–12633 (!)、44 (,)、64 (@)
數字48–5748 (0)、57 (9)
大寫 A–Z65–9065 (A)、90 (Z)
小寫 a–z97–12297 (a)、122 (z)
DEL127Delete

這種緊密且有完整文件的編排,正是讓轉換器如此直接的原因——每個可列印字元和每個控制碼都有唯一且具名的十進位值。這個範圍也刻意設計得很窄:在 1960 年代,7 個位元對英文技術文字而言已綽綽有餘,也讓這個標準得以在 8 位元通道上傳輸而無需跳脫處理。

文字如何轉為十進位數字再轉回來

編碼方向將輸入字串視為一連串的字元,並將每個字元替換為其固定的十進位 ASCII 編碼,再以空格連接起來。解碼方向接受以空格、逗號或換行分隔的一組十進位整數,逐個驗證,然後重建對應的字元。

以兩個字元的字串 "Hi" 為例:

  • 字元 H 在標準 ASCII 表中的十進位位置是 72。
  • 字元 i 在十進位位置是 105。
  • 編碼後產生 "72 105"。

解碼 "72 105" 將查表反向進行:72 對應回 H,而 105 對應回 i,得到 "Hi"。由於指派是一對一的,不需要任何詮釋步驟——工具只是讀取或寫入每個字元所對應的編號。如需更詳細了解此對應中整數一側的逐步說明,請參閱 如何將 ASCII 轉換為整數:精確的十進位值

一個遵守此規則的 ASCII 編碼轉換器,同樣會拒絕不屬於 7 位元集的輸入。如果輸入含有帶重音字母、表情符號,或任何 Unicode 碼點大於 127 的其他字元,轉換器會拒絕第一個超出 7 位元 ASCII 的字元,並回報其位置。如果解碼的整數帶有正負號(例如 "+72")、帶有小數(例如 "72.5")、十六進位("0x48"),或大於 127,也會因相同理由而被拒絕——嚴格的 ASCII 轉換器採取「失敗即拒絕」的策略,而不是靜默地產生不同的編碼。

使用 ASCII 轉換器進行編碼與解碼

Lizely 上的 ASCII 轉換器在您的瀏覽器中執行這兩種方向的轉換,當輸入落在 7 位元範圍之外時會顯示明確的驗證訊息。使用方式如下:

  1. 開啟 ASCII 轉換器並選擇方向:text-to-codes(文字轉編碼)將字元轉成十進位整數,或 codes-to-text(編碼轉文字)將一組十進位整數解碼為字元。
  2. 輸入您的內容。對於 text-to-codes,直接在輸入框中輸入或貼上字串。對於 codes-to-text,貼上以空格、逗號或換行分隔、範圍在 0 到 127 之間的十進位整數。
  3. 點擊 Convert ASCII。工具會將每個 ASCII 字元編碼為以空格分隔的十進位整數,或是將解碼輸入斷詞、驗證每個詞是否為無正負號的一到三位十進位數字,然後組合結果。
  4. 在輸出區域讀取結果。請留意不可見的控制字元,例如 TAB、LF、CR、NUL 或 DEL,它們可能會顯示為空白,或對周圍的文字產生作用。
  5. 使用提供的複製動作來複製十進位輸出或解碼後的文字。當結果包含控制字元,而您需要它們保持可見時,請優先採用十進位形式,或貼到位元組感知的編輯器中。

如果工具回報錯誤,請檢查每個輸入字元是否都在 7 位元 ASCII 範圍內,或每個解碼詞是否都是介於 0 到 127 之間的純十進位整數。輸入上限為編碼 100,000 個 UTF-16 碼元,以及解碼 50,000 個詞,即使是很長的貼上內容通常也能順利處理。

為何控制字元經常消失不見

從 0 到 31 以及 127 這 33 個編碼是控制字元。它們大多數根本沒有可列印的字形。當您將它們解碼回文字輸入框時,根據宿主應用程式的不同,它們可能完全不顯示、移動游標、插入定位點,或換到新的一行。

十進位 9 是水平定位點,十進位 10 是換行,十進位 13 是歸位,十進位 0 是 NUL,而十進位 127 是 DEL。如果您將含有這些編碼的解碼字串複製到聊天視窗、電子郵件內文或文書處理器中,您可能會看到奇怪的間距、消失的行,或在您預期出現字元的地方看不到任何輸出。最簡單的解決方法是保留十進位形式(這是沒有歧義的),並且只在控制字元有用的情境下才將其解碼回文字——例如,在重建需要明確換行的通訊協定訊息時,或在使用能顯示每個位元組的位元組感知編輯器時。

ASCII 轉換器與其他編碼工具有何不同

嚴格的 7 位元 ASCII 轉換器很容易與其他「將文字轉為數字」的工具混淆,但其中的差異至關重要。

工具範圍輸出最佳用途
ASCII 轉換器標準 7 位元 ASCII (0–127)十進位整數在 7 位元範圍內進行嚴格的文字轉編碼或編碼轉文字
ASCII 表單一參考圖表唯讀對應表一次查找單一字元
文字轉十六進位UTF-8 位元組十六進位編碼完整的 Unicode,包括表情符號與重音字母
文字轉二進位UTF-8 位元組二進位數字將完整 Unicode 編碼為可見的 8 位元位元組

ASCII 轉換器的決定性特質在於其有限的輸入範圍:任何超出 0 到 127 的內容都會被拒絕。本比較中的其他工具則使用 UTF-8,它能表示每個 Unicode 字元,但每個碼點需要一到四個位元組。如果目標是保證 ASCII 文字與十進位數字之間能往返對應,那麼嚴格的轉換器才是正確的選擇。如果您需要以十六進位或二進位表示相同的字元,請使用支援 UTF-8 的工具,並記住其結果不再是純粹的 7 位元 ASCII。

7 位元 ASCII 在何時不再足夠

ASCII 是為英文技術文字所設計,且從未以單一、相容的方式進行擴充。「擴充 ASCII」這個詞通常指的是數個互不相容的 8 位元代碼頁之一,例如 Windows-1252 或 ISO-8859-1,這些代碼頁使用 128 到 255 的值,但每個代碼頁指派的字元各不相同。嚴格的 ASCII 轉換器刻意不為您從中挑選一個,因為這麼做會在無聲中改變您資料的意義。

當您的輸入含有重音字母、非拉丁文文字或表情符號時,這些字元屬於 127 以上的 Unicode 碼點。若要忠實地編碼它們,請使用明確標示目標編碼的轉換器——例如,用於現代網頁的 UTF-8 編碼器,或在您確實需要 Windows-1252 或 ISO-8859-1 輸出時使用特定的舊式代碼頁。ASCII 轉換器在這個工作流程中的角色,是確認您文字中哪些部分確實是 7 位元 ASCII,並為您提供該部分的純淨十進位表示。

如果您正在權衡各種選項,HTML 跳脫詳解:從字元到實體 對此有詳細說明。