UTF-8の文字列をHEXへ変換する方法

UTF-8では、文字ごとのUnicodeコードポイントを規則に従って1〜4バイトへ符号化します。得られた各バイトを2桁の16進数にすればHEX表記になります。

この記事の要点

計算せずにすぐ変換

入力した文字列をブラウザ内でUTF-8のHEXへ変換できます。

文字列16進数変換ツールを使う

UTF-8からHEXへ変換する基本手順

  1. 変換する文字列を決めます。
  2. 文字列をUTF-8で符号化し、バイト列を得ます。
  3. 各バイトを2桁の16進数へ変換します。
  4. 必要に応じて空白、カンマ、0xなどの区切りを付けます。

HEXは表示形式なので、空白区切りの41 42 43と連結した414243は同じ3バイトを表せます。

例1:「ABC」をUTF-8のHEXへ変換

「A」「B」「C」はASCIIと共通の範囲にあり、UTF-8ではそれぞれ1バイトです。

文字10進数2進数HEX
A650100000141
B660100001042
C670100001143
変換結果

空白区切り:41 42 43
連結:414243
0x形式:0x41 0x42 0x43

例2:「あ」をUTF-8のHEXへ変換

「あ」のUnicodeコードポイントはU+3042です。UTF-8の3バイト形式へ符号化すると、バイト列は11100011 10000001 10000010になります。

「あ」の変換結果

2進数:11100011 10000001 10000010
HEX:E3 81 82

Unicodeコードポイントの3042とUTF-8のHEXであるE3 81 82は別物です。前者は文字番号、後者はUTF-8で符号化した3バイトを表します。

HEXからUTF-8の文字列へ戻す

  1. HEXを2桁ずつ区切り、バイト列として読み取ります。
  2. 空白、カンマ、0xなど表示用の記号を取り除きます。
  3. 得られたバイト列をUTF-8として復号します。

たとえばE3 81 82をUTF-8として復号すると「あ」になります。Shift_JISなど別の文字コードで復号すると、正しい文字にならない可能性があります。

ツールで変換する方法

  1. 文字列16進数変換ツールを開きます。
  2. 文字コードで「UTF-8」を選びます。
  3. 文字列欄に変換したいテキストを入力します。
  4. HEX欄に表示された結果をコピーします。

逆変換ではHEX欄へデータを貼り付けます。スペース、カンマ、0x\x付きの形式も用途に合わせて調整できます。

変換時の注意点

よくある質問

HEXの大文字と小文字に違いはありますか?

数値としての違いはありません。E3e3は同じ値です。表記は用途や仕様に合わせます。

HEXの空白は必要ですか?

バイトの区切りとして空白を入れると読みやすくなりますが、値そのものには含まれません。受け付ける形式はツールや仕様によって異なります。

UTF-8のBOMは常に必要ですか?

通常は不要です。UTF-8のBOMはEF BB BFですが、プロトコルやアプリケーションの仕様で必要な場合だけ付けます。