編碼互轉

一步把字串從一種二進位轉文字編碼轉換成另一種。輸入先解碼成位元組,再直接重新編碼,中間不會丟失任何資料。

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

使用方法

  1. 選擇輸入內容的源編碼,例如 Base64。
  2. 選擇想要得到的目標編碼,例如 Base58。
  3. 貼上輸入內容,即可得到轉換結果。
  4. 點選「複製」使用結果,或點選「交換」反向轉換。

為什麼要轉換位元組,而不是文字

Base64、Base58、十六進位以及本站的其他編碼,表示的都是位元組。先解碼成文字再重新編碼的做法,只有在資料本身確實是文字時才行得通。金鑰、雜湊、簽名、圖片和壓縮資料中有大量不是合法 UTF-8 的位元組序列,文字解碼器會把它們替換成 U+FFFD 替換字元,重新編碼後的結果就悄悄出錯了。

本工具把源字串解碼成原始位元組,再直接用目標編碼寫出這些位元組。32 位元組的金鑰轉換後仍然是 32 位元組,開頭的零位元組也會保留,反向轉換得到的位元組完全一致。轉換全程在瀏覽器中完成。

常見的轉換場景

  • Base64 轉 Base58:把介面返回的公鑰或雜湊轉換成比特幣、Solana 和 IPFS 使用的格式。如果輸入是十六進位,請看十六進位轉 Base58。
  • Base32 轉 Base64 或十六進位:檢視 TOTP 金鑰的內容,或在需要其他格式的系統中複用它。
  • 十六進位轉 Base62 或 Base58:縮短 URL 中的雜湊和 ID。64 位的 SHA-256 十六進位字串會縮短到 43 個字元左右。
  • Base64 轉 Base64URL:讓值可以安全地放進 URL、Cookie 和 JWT 欄位。
  • Ascii85、Base85 或 Z85 轉 Base64:複用從 PDF 資料流、Git 二進位補丁或 ZeroMQ 訊息中取出的資料。

同樣的 4 個位元組,用五種編碼表示:

編碼結果
十六進位deadbeef
Base643q2+7w==
Base586h8cQN
Base6244pZgF
Base85-mSjx

輸入規則與限制

  • Base64 輸入可以使用標準字母表或 URL 安全字母表,可以包含換行,也可以省略填充。
  • 十六進位輸入可以包含空格、冒號或 0x 字首,大小寫均可。
  • Base58 和 Base62 會把資料當作一個大數處理,因此涉及它們的轉換最多支援約 20 KB。
  • 工具不會校驗或新增校驗和。如需驗證或生成 Base58Check 字串,請使用 Base58Check 頁面。

常見問題

如何把 Base64 轉成 Base58?

源編碼選擇 Base64,目標編碼選擇 Base58,然後貼上字串即可。Base64 會先解碼成位元組,再用比特幣 Base58 字母表寫出,Solana 和 IPFS 使用的也是這套字母表。

這和先解碼再編碼有什麼區別?

只有資料是純文字時兩者才一樣。對於金鑰、圖片這類二進位資料,解碼成文字會丟失位元組。本工具從不經過文字這一步,位元組會被完整保留。

為什麼轉換後的字串變長或變短了?
每種編碼中一個字元承載的位數不同。十六進位每位元組需要 2 個字元,Base58 約 1.37 個,Base64 約 1.33 個。全部編碼頁面可以並排對比它們。
可以在這裡把二進位數轉成十進位嗎?
不能按數值轉換。本頁的二進位指把資料的每個位元組寫成 8 位一組,而不是表示某一個數的值。如果要轉換一個數的數值,例如把二進位 1010 轉成十進位 10,請使用進位轉換工具。