本文へスキップ

テキストから16進数への変換ツール

テキストを入力すると、そのUTF-8バイトを16進数で確認できます。16進数を貼り付ければ、そこに書かれたテキストが読めます。アクセント付きの文字や絵文字も正しく往復変換され、スペース区切り、連続、0xプレフィックス付きのどれで出力するかを選べ、バイト数も表示されます。無料で、登録は不要で、変換はブラウザ内で行われます。

方向

16進数出力のグループ化

テキストから16進数への変換ツールの使い方

  1. 1. 方向を選びます。 自動検出 は、明らかに16進数である入力(2桁ずつに区切られたバイト 48 65 6c、または0xプレフィックス付きのバイト)だけをデコードし、それ以外はエンコードします。テキスト → 16進数 と 16進数 → テキスト は方向を固定し、結果の見出しにどちらの方向に変換したかが表示されます。
  2. 2. 16進数の区切り方を選びます。 スペース区切り(48 65)、連続(4865)、0xプレフィックス付き(0x48 0x65)のいずれかです。これはテキストから16進数への出力にだけ影響します。
  3. 3. 入力または貼り付けます。 結果とバイト数は、入力に合わせて表示されます。
  4. 4. コピーします。 結果をコピー で出力をコピーし、クリア でボックスを空にします。

テキストが16進数になるしくみ

コンピューターはテキストをバイトとして保存します。1バイトは8ビットで、ちょうど16進数の2桁に相当します(16進数の1桁は4ビットを表すため)。ツールはまずテキストをUTF-8(RFC 3629)でエンコードします。UTF-8では1文字が1〜4バイトになり、そのあと各バイトを小文字の16進数2桁で書きます。ASCIIの文字は1バイトで、おなじみの値を保ちます。たとえば A は 41 です。それ以外の文字は、より多くのバイトを使います:

文字コードポイントUTF-8バイト(16進数)バイト数
AU+0041411
éU+00E9c3 a92
☕U+2615e2 98 953
😀U+1F600f0 9f 98 804

これが、16進数の出力がテキストより長くなることがある理由であり、ASCII変換ツールが扱う10進数の文字コードとは異なる理由でもあります。é は1つのコードポイント233ですが、2バイトの c3 a9 になります。

具体例

入力

Hello, World!

スペース区切り

48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21

連続

48656c6c6f2c20576f726c6421

0xプレフィックス付き

0x48 0x65 0x6c 0x6c 0x6f 0x2c 0x20 0x57 0x6f 0x72 0x6c 0x64 0x21

サイズ

13バイト

逆方向では、63 61 66 c3 a9 は café に、e2 98 95 は ☕ にデコードされます。デコードするときは、スペース、カンマ、改行、0x プレフィックスはすべて無視されるため、デバッガー、パケットダンプ、ソースコードから貼り付けた16進数もそのまま使えます。残った部分は、2桁ずつの16進数の桁だけでなければなりません。

エラーと意外な結果の読み方

  • 「入力に16進数の桁ではない文字が含まれています。」 区切り文字と 0x を除いて、0〜9とa〜f(大文字でも小文字でも)以外の文字が入力に含まれています。
  • 「16進数の入力の桁数が奇数です。」 各バイトには2桁が必要なので、桁が足りないか余分にあると桁数が奇数になります。先頭のゼロが落ちていないか確認してください(5 は 05 であるべきです)。
  • 置換文字(�)。 有効なUTF-8ではないバイト(たとえば単独の ff)は、失敗する代わりに置換文字にデコードされます。テキストを期待していた場合、データは別のエンコーディングか、そもそもテキストではない可能性があります。
  • 自動検出は、16進数と認識するために区切り文字を必要とします。 cafe、dead、2024 のような単一の文字列は、16進数とも単語や数字とも取れるため、テキストとしてエンコードされます。48656c6c6f のような連続した16進数もテキストとして扱われます。その場合は 16進数 → テキスト を選ぶか、バイトをスペースで区切ってください。
  • 出力は小文字です。 送り先で大文字が必要な場合は、エディターで変換してください。

どのツールが必要ですか?

同じテキスト「Hi」使うツール
48 69 — 16進数のバイトこのページ
01001000 01101001 — 8ビットの2進数のバイト2進数変換
72 105 — 10進数の文字コードと、ASCII表ASCII変換ツール
SGk= — Base64、URLエンコード、HTMLエンティティテキストエンコーダー・デコーダー
ある基数から別の基数への数(例:255からFFへ)基数変換

よくある質問

テキストを16進数に変換するにはどうすればよいですか?
方向を テキスト → 16進数 に設定するか、自動検出 のままにして、テキストを入力または貼り付けます。各文字はUTF-8バイトにエンコードされ、各バイトは2桁の16進数で表示されるため、「Hi」は 48 69 になります。
16進数をテキストやASCIIに変換するにはどうすればよいですか?
方向を 16進数 → テキスト に設定して、16進数を貼り付けます。スペース、カンマ、改行、0xプレフィックスは無視され、残りの桁数は偶数でなければなりません。バイトはUTF-8としてデコードされるため、普通のASCIIのバイトなら、そのままASCIIのテキストになります。
どのようなグループ化形式がありますか?
スペース区切り(48 65)、連続(4865)、0xプレフィックス付き(0x48 0x65)です。16進数 → テキスト を選べば、3つとも同じように元に戻ります(自動検出はスペース区切りと0xプレフィックス付きを認識しますが、連続の16進数はテキストとして読みます)。送り先が期待する形式を選んでください。読みやすさならスペース区切り、コード内の文字列なら連続、ソースコードなら0xプレフィックス付きです。
このツールはどのエンコーディングを使っていますか?
UTF-8です。ASCIIの文字はそれぞれ1バイトで、アクセント付きの文字、記号、絵文字は2〜4バイトになります。UTF-16やLatin-1などの他のエンコーディングでは、ASCII以外のテキストに別のバイト列が生成されます。
なぜ入力した16進数がデコードされず、エンコードされたのですか?
自動検出は、区切られた2桁のバイトか0xプレフィックス付きのバイトだけをデコードします。cafeや2024のような単独の並びは、単語にも数字にも取れるからです。48656c6c6f のような連続した16進数はテキストとしてエンコードされます。デコードするには、方向を 16進数 → テキスト に切り替えてください。
デコードされたテキストに � が表示されるのはなぜですか?
貼り付けたバイトが有効なUTF-8ではないためです。ツールは、別のエンコーディングを推測する代わりに、無効な並びごとに置換文字を表示します。
私のテキストはサーバーに送信されますか?
いいえ。変換はブラウザ組み込みのTextEncoderとTextDecoderを使って行われ、入力した内容が端末の外に出ることはありません。

関連ツール

データ・マークアップ・コードのその他のツール