文字與十進位互轉

把文字的每個位元組轉換為 0 到 255 之間的十進位數,英文文字得到的就是常見的 ASCII 碼;也可以把十進位數列還原為文字。

完全在瀏覽器中執行,不會上傳任何資料。

使用方法

  1. 選擇「編碼」把文字轉換為十進位數,或選擇「解碼」把數字還原為文字。
  2. 輸入或貼上內容,也可以開啟檔案,結果會隨輸入即時更新。
  3. 為數字選擇分隔符:空格、逗號或換行。
  4. 複製結果,或將結果下載為檔案。

十進位位元組值與 ASCII 碼

計算機中的每個字元都以一個或多個位元組儲存,而一個位元組就是 0 到 255 之間的數字。本工具把這些數字用普通的十進位寫出來。對於英文文字,得到的就是熟悉的 ASCII 碼:大寫字母是 65 到 90,小寫字母是 97 到 122,數字 0 到 9 是 48 到 57,空格是 32。32 以下是控制字元,例如換行符是 10,回車符是 13。

結果與 Python 中 ord() 或 JavaScript 中讀取 Uint8Array 得到的數值相同,很適合用來找出字串裡看不見的字元、換行符或位元組順序標記(BOM)。

逐位元組轉換,而不是一個大數

轉換是逐位元組進行的:兩個字母會得到兩個數字,而不是一個整數。ASCII 文字中不會出現大於 127 的值;在 UTF-8 中,這類位元組兩到四個一組,共同組成一個字元,所以一個帶重音的字母或一個漢字會產生多個數字。如果在「文字編碼」中選擇 GBK,每個漢字對應兩個數字。西歐文字可以選擇 ISO-8859-1,它的每個位元組值都等於該字元的 Unicode 碼位;也可以選擇 Windows-1252。

如果要把單個數字換成其他進位,例如把 255 轉換為十六進位,請使用進位轉換器。想用其他形式檢視同樣的位元組,可以試試十六進位或二進位。

在程式碼中獲取十進位位元組值

# Python
list('Hi'.encode())                  # [72, 105]
bytes([72, 105]).decode()            # 'Hi'

// JavaScript
[...new TextEncoder().encode('Hi')]                   // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105]))   // 'Hi'

編碼規格

字母表0-9
輸出體積每位元組 1 到 3 位數字,另加分隔符
填充無
標準十進位位元組值
區分大小寫否

編碼範例

輸入 (UTF-8)輸出
Hello, World!72 101 108 108 111 44 32 87 111 114 108 100 33
Base64.is66 97 115 101 54 52 46 105 115
你好228 189 160 229 165 189

常見問題

字母 A 的 ASCII 碼是多少?

大寫 A 是 65,小寫 a 是 97,在 ASCII 和 UTF-8 中都一樣。後面的字母依次加一,所以 Z 是 90,z 是 122。

沒有分隔符的十進位數字能解碼嗎?

不能。像 72105 這樣的數字串可以有多種切分方式,所以解碼器要求用空格、逗號、分號或換行把數字隔開。數字前面可以帶前導零。

為什麼大於 255 的數字會報錯?

一個位元組只能表示 0 到 255。更大的數字(例如歐元符號的 Unicode 碼位 8364)不是位元組值。請直接輸入字元本身再編碼,就能看到它在 UTF-8 等編碼下的位元組。

為什麼一個漢字會變成好幾個數字?

UTF-8 用 3 個位元組儲存常用漢字,每個位元組都會變成一個數字。如果希望每個漢字只對應兩個數字,可以把「文字編碼」切換為 GBK。