DevToolPal
日本語

テキストを 2 進数・16 進数に変換

テキストを UTF-8 バイトの 2 進数・16 進数・10 進数・8 進数に変換し、バイト列をテキストに戻すこともできます。

ローカルで処理、アップロードなし

オプション

モード
形式

入力

0 文字 · 0 B

出力

0 文字 · 0 B

何ができるか

このツールは、テキストの裏にあるバイトを表示し、バイト列をテキストに戻します。単語を入力すると、2 進数(01001000 01101001)、16 進数(48 69)、10 進数(72 105)、8 進数(110 151)で表示されます。パケットダンプやデバッガー、課題の問題から取ったバイト列を貼り付ければ、テキストとして読み直せます。

すべての変換は UTF-8 を経由するので、単純な ASCII だけでなく、あらゆる言語や絵文字にも使えます。你好 がなぜ 6 バイトなのか、絵文字がなぜデータベースのカラムで 4 バイトと数えられるのかが一目でわかります。

使い方

  1. エンコードするなら テキスト → バイト、デコードするなら バイト → テキスト を選びます。
  2. 数値の形式を 2 進数、16 進数、10 進数、8 進数から選びます。
  3. エンコード時は、バイト間の区切り文字(スペース、なし、カンマ、改行)と、16 進数の英字を大文字にするかどうかを選びます。
  4. 入力を入力または貼り付けます。結果は入力に合わせて更新され、コピーやダウンロードができます。

デコードのルール

デコード時のツールは、レイアウトに寛容です。

  • バイトはスペース、カンマ、セミコロン、改行のどれで区切っても、混在していてもかまいません。
  • 一般的な接頭辞は取り除かれます。16 進数の 0x、\x、%、2 進数の 0b、8 進数の 0o や \ です。
  • 区切りのない長い連続は固定幅のバイトに分割されます。2 進数は 8 桁、16 進数は 2 桁、8 進数と 10 進数は 3 桁です。
  • 255 を超える値や、その形式に属さない数字は、行と列付きで報告されます。

例

Hi 你好 を 2 進数にエンコードすると 9 バイトになります。Hi が 2 バイト、スペースが 1 バイト、中国語の文字がそれぞれ 3 バイトです。同じテキストを 16 進数にすると 48 69 20 e4 bd a0 e5 a5 bd となり、これはバイナリエディターで見えるもの、そして URL では %E4%BD%A0 として現れるものとまったく同じです。

役に立つ場面

開発者は、テキストがディスクにどう保存されるか、ネットワークでどう送られるかを確認したり、バイト数と文字数で文字列の長さを比べたり、文字化けをデバッグしたりするのに使います。学生は、2 進数や 16 進数を手で計算する練習をして、答え合わせをするのに使います。

よくある質問

› どの文字コードを使っていますか?

ウェブの標準である UTF-8 です。ASCII 文字は 1 文字 1 バイト、アクセント付きの文字はたいてい 2 バイト、日本語・中国語・韓国語の文字は 3 バイト、絵文字は 4 バイトです。

› 0x や \x の接頭辞付きのバイト列を貼り付けられますか?

はい。デコード時には、16 進数の 0x、\x、%、2 進数の 0b、8 進数の 0o といった接頭辞が取り除かれ、スペース、カンマ、セミコロン、改行はすべて区切り文字として扱われます。

› バイト列が有効な UTF-8 ではないというエラーが出るのはなぜですか?

単独の FF バイトや途中で切れたマルチバイト文字のように、UTF-8 のテキストには現れないバイト列があるからです。すべてのバイトをコピーしたか、正しい形式を選んだかを確認してください。

› テキストはアップロードされますか?

いいえ。エンコードもデコードもブラウザ内で行われます。