Hex デコード

16進数文字列を下に貼り付けてデコードをクリックするとテキストに変換されます。すべての処理はブラウザ内でローカルに行われます。

空白、コロン、カンマ、ハイフン、0x の接頭辞はデコード前にすべて取り除かれます。
コピーしました!

HEXデコーディングとは?

16進数デコーディングは、16進数文字列を元のバイト表現に戻し、テキストに変換します。入力には16進数ペア間にスペース、コロン、または区切りなしを含めることができます。

16進数の各ペア(00ff)は1バイトを表します。デコードされたバイトはUTF-8テキストとして解釈されます。

空白、コロン、カンマ、セミコロン、ピリオド、ハイフンはデコード前に取り除かれるため、フィンガープリントやダンプからそのままコピーした 16 進もたいてい整形せずに通ります。バイトはその後 UTF-8 として読み取られ、正しい UTF-8 でないものは文字化けさせず報告します。

デコードできない不具合を追っていますか。

デコードできないペイロードは、たいてい原因ではなく症状です。経路のどこかでの二重エンコード、宣言せず仮定された文字セット、誰の想定とも少しずれたバイト列に対して署名されたトークン。私たちはまさにこうした領域、つまり連携やAPI、そしてその間でデータを受け渡すシステムを手がけています。

不具合の内容を相談する

よくある質問

16 進の文字列がデコードできないのはなぜですか。
たいていは桁数が奇数か、16 進の数字でない文字が混じっているかです。1 バイトにはちょうど 2 桁必要なので、奇数ということはどこかが切れたか、途中で 1 桁失われたことを意味します。紛れ込んだ文字は、1 のつもりで打った小文字の l、0 のつもりの大文字の O、あるいはコピーした行の末尾が一緒に付いてきたもの、といったところです。
空白やコロン、0x 付きの 16 進を貼り付けてもよいですか。
空白、コロン、カンマ、セミコロン、ピリオド、ハイフンはいずれもデコード前に取り除かれるため、証明書のフィンガープリントや MAC アドレス、ダンプからそのままコピーした 16 進もたいてい整形せずに通ります。各バイトの前に付く 0x は取り除かれないので、元の資料にある場合は先に消してください。
デコードしたバイトがテキストでない場合はどうなりますか。
それは異常ではなく普通のことです。16 進はバイトを書き表す方法であり、そのバイトはテキストでないことがよくあります。このページはそれを UTF-8 としてデコードし、正しい UTF-8 でないときは置換文字を並べて悩ませるのではなく、はっきりそう伝えます。テキストのはずが得られなかったなら、圧縮または暗号化されていないか確かめてください。
そのバイト列がどの文字エンコーディングか、どう分かりますか。
16 進だけからは分かりません。どのエンコーディングで作られたかを 16 進の文字列そのものが記録することはなく、その情報はバイトの外側、HTTP ヘッダーやファイル形式、プロトコル仕様に置かれています。このページは UTF-8 を前提にします。圧倒的多数の場合これで正しく、だからこそ不正な並びは、黙って文字化けにするのではなくバイナリとして報告します。別のエンコーディングだと分かっているなら、エンコーディングを指定できるツールでデコードしてください。
16 進のデコードは可逆ですか。
完全に可逆です。16 進は 1 バイトを 2 文字に置き換えるだけの単純な対応で、失われるものも加わるものもないため、エンコードしてデコードすれば元のバイト列がそのまま戻ります。常に可逆とは限らないのはその次の段階です。バイトをテキストに戻すには正しいエンコーディングが要り、そのエンコーディングで不正なバイト列にはそもそもテキストとしての姿がありません。