ブラウザ内ツール
文字コードインスペクタ
文字がUTF-8でどうバイトになるかを、ビットテンプレート (0xxxxxxx / 1110xxxx 10xxxxxx…)レベルで分解して表示します。 UTF-16のサロゲートペア計算も見えます。
コードポイント 4UTF-8 11 バイトUTF-16 10 バイト(5 コード単位)UTF-32 16 バイト
AU+004110進 65
UTF-841(1 バイト)
01000001
UTF-160041
あU+304210進 12354
UTF-8E3 81 82(3 バイト)
111000111000000110000010
UTF-163042
😀U+1F60010進 128512
UTF-8F0 9F 98 80(4 バイト)
11110000100111111001100010000000
UTF-16D83D DE00サロゲートペア(上位 D800–DBFF + 下位 DC00–DFFF)
€U+20AC10進 8364
UTF-8E2 82 AC(3 バイト)
111000101000001010101100
UTF-1620AC
UTF-8は先頭バイトの上位ビットで長さが分かる自己同期符号です(0…=1バイト、110…=2、1110…=3、11110…=4、継続バイトは必ず 10…)。 灰色が固定の目印ビット、緑がコードポイント由来のビットです。BMP外(U+10000以上)はUTF-16でサロゲートペアになります。すべてブラウザ内で処理。
UTF-8のうまい設計
- ASCII互換:U+0000〜007Fは1バイトでそのまま。既存の英数字テキストは変わらない。
- 自己同期:先頭バイトを見れば長さが分かり、継続バイトは必ず
10…。途中から読んでも文字境界を復元できる。 - バイト順の問題がない:UTF-16/32と違いエンディアンやBOMに悩まされにくい。だからWebの標準になった。