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

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

テキストを入力するか貼り付けると、そのバイト列が16進数で表示されます。Hello は 48656c6c6f です。文字コード、大文字/小文字、区切り文字(スペース、:、0x、\x など)を選べます。

無料 登録不要・制限なし ローカル アップロードなし \x C や Python の文字列用エスケープをそのまま出力 更新日 2026/10/27
入力 0バイト 0 B出力 0

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

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

  1. 入力 · テキスト にテキストを入力するか貼り付けます。入力に合わせて 出力 · Hex(16進数) に16進数が表示されます。
  2. 入力の下の 文字コード で、文字をどのバイト列にするかが決まります。受け取る側のシステムが別の文字コードを想定していない限り、UTF-8 のままにしてください。
  3. 出力の下で、大文字/小文字(小文字または大文字)、区切り文字(なし、スペース、:、0x、\x)、1 行あたりのバイト数(なし、16、32)を選びます。
  4. 結果は 出力をコピー または ダウンロード で保存します。Hex(16進数) → テキスト の切り替えでテキストに戻せます。16進数をテキストに でも同じことができます。

出力のスタイル

区切り文字と大文字/小文字のオプションで、16進数を貼り付けるよくある場所に対応できます。テキスト Hi! の場合は次のとおりです。

設定出力向いている場所
なし、小文字486921ハッシュ、URL、JSON
スペース、大文字48 69 21バイナリエディター、プロトコルの文書
:48:69:21フィンガープリント、MAC アドレス風の表記
0x0x48 0x69 0x21C やアセンブラのソース
\x\x48\x69\x21C、Python、Bash の printf の文字列エスケープ

\x 形式はそのまま文字列リテラルに入れられます。Bash で printf '\x48\x69\x21' を実行すると Hi! と表示されます。1 行あたりのバイト数 を使うと長い出力を 16 または 32 バイトごとの行に分けられるので、オフセットを目で数えられます。

1 文字が 1 バイト以上になる

ASCII の文字は 1 文字 1 バイトで、UTF-8 でもそのまま同じなので、英語のテキストならどちらの文字コードでも同じ16進数になります。それ以外は文字コードによって変わります。

テキストUTF-8ISO-8859-1UTF-16LE
A414141 00
éc3 a9e9e9 00
€e2 82 ac表現不可ac 20
👋f0 9f 91 8b表現不可3d d8 4b dc

文字コードで表現できない文字は ? に置き換えられ、ステータス行に置き換えた個数が表示されます。別のシステムの16進数が手元のものと一致しないなら、まず双方の文字コードを確認してください。

目に見えない文字を見つける

16進数への変換は、画面上では何も見えない文字を確認する最も手早い方法です。表示がまったく同じ 2 つの文字列でも、バイト列が違うことがあります。

UTF-8 での16進数文字
20普通のスペース
c2 a0ノーブレークスペース。Web ページや Word からコピーしたテキストによく含まれます
e2 80 8bゼロ幅スペース
ef bb bfファイル先頭のバイトオーダーマーク(BOM)
0d 0aWindows の改行(Linux や macOS では 0a のみ)

パスワード、API キー、設定値が「合っているはずなのに拒否される」ときは、区切り文字 をスペースにしてここに貼り付け、これらの文字がないか探してください。テキストを Base64 に でテキストを Base64 にする前にも、同じ確認が役立ちます。Base64 は目に見えないバイトもすべて保持するので、エンコード後の値にもそのまま残ります。

コードでテキストを16進数に

"Hi!".encode("utf-8").hex()       # '486921'
"Hi!".encode("utf-8").hex(" ")    # '48 69 21'  (separator argument, Python 3.8+)
"é".encode("latin-1").hex()       # 'e9'
const hex = Array.from(new TextEncoder().encode("café"),
  b => b.toString(16).padStart(2, "0")).join(" ");
// '63 61 66 c3 a9'

TextEncoder は常に UTF-8 を出力します。対応する Base64 の呼び出し方は JavaScript と Python のページにあります。

よくある質問

文字列を16進数に変換するには?

入力欄に文字列を貼り付けます。各文字は選んだ文字コードでのバイト値になり、1 バイトが16進数 2 桁で表されます。Python なら "Hello".encode("utf-8").hex() で同じ結果になります。

「Hello」は16進数でどうなりますか?

ASCII でも UTF-8 でも 48 65 6c 6c 6f です。普通の英字では両者は一致します。UTF-16LE では 48 00 65 00 6c 00 6c 00 6f 00 になります。

é が c3 a9 の 2 バイトになるのはなぜですか?

UTF-8 は U+007F より上の文字をすべて 2~4 バイトでエンコードするからです。1 バイトの e9 が必要なら、文字コード を ISO-8859-1(Latin-1)か Windows-1252 にしてください。

各バイトの前に 0x を付けた16進数にするには?

区切り文字 を 0x にします。出力は 0x48 0x65 0x6c 0x6c 0x6f になります。C や Rust の配列リテラル全体が必要なら、Base64 をバイト配列に が宣言まで書き出します。