tools / binary
binary/
文字和二進位(0 和 1)互轉,每個位元組 8 位元。字元集可選 UTF-8、GBK、UTF-16 等。
文字
二進位
常見問題
一個漢字轉成二進位是多少位元
每個位元組固定寫成 8 位元,位元數取決於字元集。UTF-8 下常見漢字佔 3 個位元組,也就是 24 位元,「中」是 11100100 10111000 10101101;GBK、GB2312 下佔 2 個位元組,也就是 16 位元,「中」是 11010110 11010000;英文字母和數字佔 1 個位元組,A 是 01000001。
二進位轉文字顯示位元數不是 8 的倍數怎麼辦
每 8 位元對應一個位元組,去掉空白後的位元數必須是 8 的倍數,否則會提示要再補幾位元或去掉結尾幾位元。多半是複製時少了或多了幾位元;有些來源會把每個位元組只寫有效位元,例如把 A 寫成 1000001(7 位元),這種要先在前面補 0 湊滿 8 位元,本工具不會自動補。
顯示「不是 0 或 1」,或內容帶有 0b 前綴、逗號怎麼辦
只接受半形的 0 和 1,空白、換行和 Tab 會被忽略。0b 前綴、逗號、連字號、全形的0和1都不接受,錯誤訊息會指出是第幾個字元,請先在文字編輯器裡把它們刪掉或取代,再貼上。
二進位轉文字顯示解出的位元組不是有效文字,或結果是亂碼怎麼辦
表示這串二進位不是依目前的字元集編碼的,請換一種字元集試試。中文內容最常見的是 UTF-8 和 GBK。本工具不會把解不出來的位元組硬顯示成亂碼,只有 ISO-8859-1 例外:它的每個位元組都對應一個字元,所以不會出錯,但中文會變成亂碼字元。GBK 和 GB2312 都使用瀏覽器內建的 GB18030 解碼器,比 Python、Java 寬鬆,選 GB2312 也能解出 GBK 才有的字。如果這串資料本來就不是文字(圖片、壓縮檔),不論選哪種字元集都解不出來。
輸入數字 10 為什麼得到的不是 1010
本工具轉換的是文字的位元組,不是數值。輸入的 10 是「1」和「0」兩個字元,依 UTF-8 是 00110001 00110000。要把十進位數字 10 變成二進位數字 1010,需要使用進位轉換工具,這裡做不到。
分隔符號選「空白」和「無」有什麼差別
選「空白」時每個位元組之間空一格,選「無」時連成一整串,每個位元組的位元都是由高到低排列,最左邊是最高位元。解碼時兩種寫法都接受,空白不需要對齊位元組邊界,只看去掉空白後的總位元數。
UTF-16 和 UTF-32 的結果為什麼那麼長
UTF-16 每個字元至少 2 個位元組,開頭還多了 FE FF 兩個位元組(11111110 11111111),所以「中」是 11111110 11111111 01001110 00101101。UTF-32 每個字元固定 4 個位元組,「中」是 00000000 00000000 01001110 00101101,兩者都是大端序。
輸入的內容會上傳嗎
不會。轉換在瀏覽器裡完成,不會發出任何請求,也不會儲存。