使用方式
- 選擇「文字 → 位元組」進行編碼,或選擇「位元組 → 文字」進行解碼。
- 選擇位元組格式:二進位、十六進位、十進位或八進位。
- 輸入或貼上內容。結果和位元組數會隨輸入即時更新。
- 複製結果,或將結果移回輸入欄位以確認轉換是否正確。
運作方式
電腦會將文字儲存為位元組。這項工具使用 UTF-8,幾乎所有網站和現代系統都採用這種編碼。在 UTF-8 中,128 個 ASCII 字元(英文字母、數字和基本標點符號)各占 1 個位元組,因此 H 的二進位表示為 01001000,十六進位表示為 48。其他字元則占 2 到 4 個位元組:é 占 2 個位元組(C3 A9),€ 和 ☕ 各占 3 個位元組,而大多數表情符號占 4 個位元組。因此,位元組數可能多於字元數,而且一個字元可能會轉換成多組 8 位元。
每個位元組有四種常見表示方式:8 位數的二進位(00000000–11111111)、2 位數的十六進位(00–FF)、十進位(0–255)或 3 位數的八進位(000–377)。連續表示位元組時,二進位、十六進位和八進位數值會補零至固定長度,十進位數值則會補零至 3 位數,方便之後明確拆分。
解碼時可接受多種格式:位元組之間的空格、換行、逗號和分號都會忽略,0x 和 0b 前綴以及 \x 跳脫序列也會忽略。系統會檢查每個群組;如果某個數字不符合所選格式,或數值大於 255,系統會指出該位元組的位置。解碼後,系統會檢查位元組是否符合有效的 UTF-8,並在內容不是文字時通知您。
由多個碼位組成的字元(例如旗幟,或帶有膚色的表情符號)在此會計為多個字元,因為每個碼位都是分別編碼的。
範例
經典的「Hi」二進位表示
H 的 ASCII 碼為 72,i 為 105,因此「Hi」的二進位表示為 01001000 01101001,十六進位為 48 69,十進位為 72 105:2 個字元、2 個位元組、16 個位元。
為什麼「Café」占 5 個位元組
C、a 和 f 各占 1 個位元組,但 é 在 UTF-8 中占 2 個位元組:11000011 10101001(C3 A9)。這個單字有 4 個字元,卻占 5 個位元組;若資料庫欄位限制或通訊協定欄位以位元組為單位計算,這點就很重要。
讀取十六進位傾印
偵錯工具顯示 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c。選擇「位元組 → 文字」和「十六進位」,再貼上內容,即可得到「Hello, 世界」;每個中文字占 3 個位元組。
常見問題
為什麼一個字元會轉換成 16、24 或 32 個位元?
在 UTF-8 中,只有 ASCII 字元會占 1 個位元組(8 位元)。重音字母和大多數其他文字系統的字元占 2 個位元組;中文、日文、韓文和許多符號占 3 個位元組;表情符號則占 4 個位元組。每個位元組都會各自顯示為一組。
這是 ASCII 還是 UTF-8?
使用 UTF-8。純英文文字的結果與 ASCII 相同,因為 UTF-8 的設計相容於 ASCII。只用 ASCII 無法表示 ASCII 範圍以外的字元。
解碼二進位時為什麼會出現錯誤?
每個位元組最多只能有 8 個二進位數字,且只能包含 0 和 1。如果沒有空格,數字總數必須是 8 的倍數。錯誤訊息會指出無法讀取的位元組。
「不是有效的 UTF-8」是什麼意思?
這些位元組無法組成有效的 UTF-8 序列,例如出現單獨一個大於 127 的位元組,或序列在中途遭到截斷。資料可能來自使用其他編碼(例如 Windows-1252)的檔案,也可能根本不是文字。
隱私權
轉換會使用瀏覽器內建的 UTF-8 編碼器和解碼器,在您的瀏覽器中執行。您的文字不會上傳、儲存或納入分析資料。