ファイルを選択
  1. base64hub
  2. その他の基数
  3. 16進数をテキストに変換

16進数をテキスト・ASCII・文字列に変換

48 65 6c 6c 6f のような16進数のバイト列を貼り付けると、それが表すテキストを読めます。空白、コロン、0x や \x の接頭辞はすべて受け付け、別の文字コードを選ぶまでは UTF-8 として扱います。

無料 登録不要・制限なし ローカル アップロードなし 27 種類の文字コード、ASCII から Shift_JIS まで 更新日 2026/10/27
入力 0バイト 0 B出力 0

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

16進数をテキストに変換する方法

  1. 入力 · Hex(16進数) に16進数を貼り付けます。大文字でも小文字でも、区切り文字があってもなくても構いません。
  2. 入力に合わせて 出力 · テキスト にテキストが表示されます。実行 で変換したいなら リアルタイム のチェックを外してください。
  3. 出力に � が出るなら、出力の下の 文字コード を開いて別のものを試します。デフォルトは UTF-8 で、ASCII、Latin-1、Windows-1252 のほか 23 種類がリストにあります。
  4. テキストは 出力をコピー か ダウンロード で取得します。16進数がテキストではなくファイルのダンプなら、バイトを保存 で生のバイト列を、内容から推測した拡張子付きでディスクに書き出せます。

ツールの上にある テキスト → Hex の切り替えで方向を逆にできます。テキストを16進数に変換 を使っても構いません。

このツールが読める16進数の書式

16進数は、出力したツールによってさまざまな書き方で現れます。以下はすべて Hello にデコードされます。

書式例よくある出どころ
区切りなし48656c6c6fxxd -p、sha256sum、データベースのダンプ
空白区切り48 65 6c 6c 6fWireshark、バイナリエディター
コロン区切り48:65:6c:6c:6f証明書のフィンガープリント、openssl の出力
ハイフン区切り48-65-6C-6C-6F.NET の BitConverter.ToString
0x 接頭辞0x48 0x65 0x6c 0x6c 0x6f または 0x48656c6c6fC のソース、デバッガー
\x エスケープ\x48\x65\x6c\x6c\x6fPython、シェルスクリプト、ログ

カンマ、セミコロン、ピリオドも区切り文字として使えます。貼り付けるのは16進数の列だけにしてください。xxd のデフォルト表示では、各行が 00000000: のようなオフセットで始まり、ASCII の列で終わります。そのまま貼るとオフセットもバイトとして読まれ、ASCII 列の最初の文字でエラーになります。代わりに xxd -p でプレーンな16進数を出力してください。

16進数を ASCII として読む

16進数 2 桁が 1 バイトで、ASCII では 80 未満の各バイトが 1 文字です。覚えておくと便利な範囲は次のとおりです。

16進数文字
20空白
30–39数字 0–9
41–5AA–Z
61–7Aa–z
21–2F! " # $ % & ' ( ) * + , - . /
0A、0D改行(LF)と復帰(CR)(0D 0A は Windows の改行)

大文字と小文字はちょうど 20 離れています。41 が A、61 が a です。これと上の表があれば、短い16進数は目で読めます。48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 は Hello, world で、2c がカンマ、20 が空白です。

16進数を UTF-8 に:80 ~ FF のバイト

基本的な英語以外の文字は UTF-8 で 2 バイト以上になり、そのバイトはすべて 80 以上です。同じバイト列でも、どの文字コードで読むかによってテキストが変わります。

16進数UTF-8 として読むWindows-1252 として読む
63 61 66 c3 a9cafécafé
e2 82 ac€â‚¬
f0 9f 91 8b👋👋
63 61 66 e9caf�café

最初の 3 行は UTF-8 のデータで、最後の行は é が 1 バイトの e9 になる Latin-1 や Windows-1252 のデータです。Ã や â が並んでいたら、ほぼ確実に UTF-8 のバイト列を 1 バイト文字コードで読んでいます。どの文字コードでも意味の通るテキストにならないなら、そのバイト列はおそらくテキストではありません。ステータス行の 検出: を確認してください。認識できる形式ならその名前が表示されます。

16進数、Base64、同じバイト列

16進数は 1 バイトに 2 文字、Base64 は 3 バイトに 4 文字を使うので、同じデータなら Base64 のほうが 3 分の 1 短くなります。手元の文字列が SGVsbG8 のような書き出しで、f より後の英字を含んでいるなら、それは Base64 です。Base64 をテキストに変換 でデコードしてください。API や設定ファイル用に16進数のバイト列を Base64 にするなら 16進数を Base64 に変換 を使います。それぞれがどこで使われるかは 16進数・Base32・Base58・Base85 の比較 で解説しています。

コードで16進数を文字列に変換する

bytes.fromhex("48656c6c6f").decode("utf-8")       # 'Hello'
bytes.fromhex("48 65 6c 6c 6f").decode("utf-8")   # spaces are fine: 'Hello'

bytes.fromhex は空白を読み飛ばしますが、コロンや 0x は受け付けないので、先に取り除いてください。Node.js では次のようになります。

Buffer.from("48656c6c6f", "hex").toString("utf8");   // 'Hello'
Buffer.from("48zz65", "hex");                         // <Buffer 48>

2 行目は落とし穴の例です。Buffer.from は16進数でない最初の文字で止まり、そこまでの結果をエラーなしで返します。ほかのパターンは Python と Node.js のページにあります。

よくある質問

16進数を ASCII に変換するには?

16進数を貼り付けて出力を読むだけです。ASCII が扱うのはバイト 00 ~ 7F だけなので、それより上のバイトを UTF-8 として読まずに � と表示させたいなら、文字コード を ASCII にしてください。

48 65 6c 6c 6f はテキストで何ですか?

Hello です。48 が H、65 が e、6c が l(2 回)、6f が o です。

16進数が é などのおかしな文字になるのはなぜですか?

UTF-8 のバイト列が Latin-1 や Windows-1252 として読まれているか、その逆です。c3 a9 は UTF-8 では é、Windows-1252 では é です。テキストが正しく読めるまで 文字コード を切り替えてください。

「16進数の桁数が奇数です」とはどういう意味ですか?

1 バイトは16進数 2 桁なので、合計は偶数でなければなりません。コピーのときに 1 桁失われていて、多くは先頭か末尾です。入力の最初と最後のペアを確認してください。

変換結果にリンクできますか?

できます。ページのアドレスに #in= と16進数を付け加えてください。たとえば /hex-to-text/#in=48656c6c6f です。# 以降の部分はブラウザ内にとどまり、サーバーには送られません。