文本轉二進位制

把文本轉換為二進位制、十六進位制、八進位制或十進位制,並可反向解碼。基於 UTF-8,支援自定義分隔符與補零,全部在瀏覽器本地完成。

在文本與二進位制、十六進位制、八進位制、十進位制之間雙向轉換。 兩側都可編輯,既能編碼文本,也能貼上編碼串進行解碼。編碼基於 UTF-8 位元組,因此帶重音的字母、中日韓文字和 emoji 都能完整往返。

文本是如何變成位元組的

字元不等於位元組

字元是抽象概念,位元組是 8 個位元的儲存單位。兩者之間的轉換需要一種編碼。本工具使用 UTF-8,它支撐著全球 98% 以上的網頁。在 UTF-8 中,ASCII 範圍內的 A-Z、a-z、0-9 和常見標點各佔一個位元組,因此 A01000001。帶重音的拉丁字母和希臘字母佔兩個位元組,多數中日韓文字佔三個位元組,emoji 佔四個位元組。

這為什麼影響往返轉換

早期的文本轉二進位制工具直接呼叫 charCodeAt 並截斷為 8 位。這對純 ASCII 有效,但會悄悄破壞其他所有內容,é 轉回來會變成另一個字元或替換符號。由於本轉換器編碼的是真實的 UTF-8 位元組,包含中文和 emoji 的字串可以原樣解碼回來。

如何選擇進位制

  • 二進位制展示原始位元模式,適合講解編碼原理或除錯位級協議。
  • 十六進位制是實用的預設選項。每位元組兩位十六進位制數字,位元組邊界一目瞭然,這也是所有十六進位制編輯器和抓包工具都用它的原因。
  • 八進位制每三個位元一組,主要出現在 Unix 許可權和部分 C 語言轉義序列中。
  • 十進位制最便於口頭朗讀,但完全掩蓋了位元結構。

分隔符與補零

補零讓每個位元組寬度一致——二進位制 8 位、十六進位制 2 位——即使值之間沒有分隔符也能可靠切分。如果關閉補零,務必保留分隔符,否則 110 會連在一起,結果無法唯一解碼。解碼時可以混用空格、逗號和換行。

開源說明:使用瀏覽器內建的 TextEncoder 與 TextDecoder API,未使用第三方庫。

常見問題

為什麼一個漢字變成了三組八位?
UTF-8 把多數中日韓文字編碼為三個位元組,每個位元組對應一組八位。這是正確行為,不是錯誤。
沒有分隔符的二進位制能解碼嗎?
可以,前提是編碼時做了補零。解碼器在找不到分隔符時會退回到定寬切分——二進位制每 8 個字元一位元組,十六進位制每 2 個。
用的是 ASCII 還是 UTF-8?
UTF-8。在純 ASCII 範圍內兩者完全相同,因此英文文本看起來一樣,但 UTF-8 還能正確處理其他所有字元。
為什麼解碼時報錯?
每一組都必須能在所選進位制下解析為 0 到 255 之間的值。出現 256、二進位制模式下混入字母,或選錯了進位制,都會觸發該錯誤。
這和 Base64 一樣嗎?
不一樣。Base64 把三個位元組壓縮成四個可列印字元以節省體積。本工具按所選進位制單獨呈現每個位元組,冗長但便於人類閱讀。
文本會被髮送出去嗎?
不會。編碼和解碼都使用瀏覽器內建的 TextEncoder 與 TextDecoder,全程在本機完成。