文字とバイトの違いを確認

テキストバイナリ変換

文字列を2進数・HEXへ変換するか、指定した文字コードでバイト列を復号します。サンプルは4コードポイント、10バイトです。

テキストバイナリ変換

テキストまたはバイト入力

変換結果

変換はこのブラウザー内で行います。入力の送信や履歴保存はしません。

バイト変換の設定

1バイトは2進数8桁またはHEX2桁。連続した完全なバイトの間では、空白、タブ、改行、カンマを区切りに使えます。

選択した文字コードをそのまま使用します。U+FEFFを保持し、BOMの追加・除去やバイト順の推測は行いません。

テキストは65,536 UTF-16単位まで。バイト入力は2,097,152文字、解析結果は196,608バイト、出力は2,097,152文字まで。

10バイト · 4 Unicodeコードポイント · 5 UTF-16単位

TXTは表示結果をUTF-8で保存します。BINは実際に符号化・解析したバイトを保存します。

通信ログに並んだ数字を読んでも、そのままでは元の日本語を確認できません。テキストバイナリ変換では文字コードを指定して、文字と保存されたバイトの対応を調べられます。復号に成功しても元と同じ文字コードとは限らないため、送信側の設定も確認してください。

テキストバイナリ変換で確かめること

日本語も絵文字もバイト単位で見る

テキストバイナリ変換は、文字を一律に1バイトとみなさず、Unicode文字列を先に符号化します。UTF-8ではAが1バイト、éが2バイト、中が3バイト、😀が4バイトです。UTF-16ではLEとBEで各16ビット単位のバイト順が変わります。

単純な記号は1個のバイト枠に、複雑な記号は複数の同じ大きさの枠に対応している。

壊れたグループを見落とさない

7桁しかない2進数にゼロを補ったり、読めないバイトを削除したりしません。変換を停止して元の入力を残し、問題の行と列を示します。見た目だけ成功した、文字の欠けた結果が出力されるのを防ぎます。

完全なバイト列は検査を通り、不完全なグループは強調されて停止している。

文字化けを避ける設定の順序

01

表記と文字コードを別々に選ぶ

バイナリから文字列へ戻すときは2進数、16進ログならHEXを選びます。そのうえで元の文字コードを指定します。UTF-16はLEかBEを明示してください。方向の変更だけでは入力を移しません。結果を使うには逆変換のプレビューを適用します。

02

自動更新を止めて比較する

編集後350msで自動変換します。オフにすると変換ボタンが現れ、Ctrl/Cmd + Enterも使えます。入力や設定を変えた時点で古い結果のコピーと保存は無効になります。区切りと大文字の設定は符号化出力にだけ作用します。

03

保存する中身を確認する

TXTは表示された結果をUTF-8の文字列として保存し、BINは元のバイトを保存します。逆変換、サンプル、クリアには置き換え件数のプレビューがあります。適用後は一度だけ入力と結果をまとめて元に戻せます。

表記を変えても保つ内容

Unicodeの符号化をそのまま扱う

2進数変換の前に文字列全体を符号化するため、日本語や絵文字が途中で省略されません。結合文字は結合文字のまま残し、NFC正規化はしません。コードポイント数は見た目の文字数とは異なり、絵文字の連結列も複数として数えます。

先頭のゼロを含む固定幅

2進数は8桁、HEXは2桁が1バイトです。出力の区切りはスペース、なし、改行、カンマから選べます。復号ではHEXの大文字と小文字の両方を受け付け、ASCII空白、タブ、CR、LF、カンマをバイト間の区切りとして扱います。

入力位置まで戻れるエラー

不正な数字、不完全なバイト、UTF-8の不正な継続バイト、UTF-16のサロゲート対の破損を報告します。バイト番号に加えて元の入力中の行列を示します。正しく符号化されたU+FFFD自体は正当な文字として保持します。

長い結果は必要な分だけ表示

符号化では先頭100バイト、復号では先頭100コードポイントから表示します。100件ずつ追加でき、絵文字のサロゲート対やバイトは途中で分割しません。コピーとダウンロードには、表示していない部分も含む全結果を使います。

受け付ける入力と対象外の処理

バイトの途中で区切らない
0100 0001は1バイトになりません。0x・0b接頭辞、バックスラッシュのエスケープ、配列の括弧、ダンプのアドレスや文字列欄は受け付けません。不要な情報は利用者が取り除きます。不明な文字を自動で捨てることはありません。
文字コードは3種類
UTF-8、UTF-16LE、UTF-16BEに対応します。文字コードの自動判定、端序未指定のUTF-16、ASCII専用モード、Shift_JIS、GBK、EUC-KRは提供しません。違う文字コードでも合法な文字列になる場合があるため、元データの設定を確認してください。
空白とBOMも内容として保持
NUL、空白、改行、結合文字、U+FEFFを保持し、BOMの追加・除去もUnicode正規化も行いません。BOMで指定のバイト順を上書きしません。貼り付け前にOSなどが変更した改行は、このページから元に戻せません。
上限では切り詰めず停止
テキスト入力と復号結果は65,536 UTF-16単位までです。バイト表記は2,097,152文字、実データは196,608バイト、出力は2,097,152文字まで。超過時はエラーになります。ファイル読込、URL取得、バッチ処理は対象外です。
TXTとBINの違い
UTF-16を選んでいてもTXTの保存文字コードはUTF-8です。実際のUTF-16バイトが必要ならBINを選びます。画像や圧縮ファイルなどの構造を解析する機能はなく、元のファイルを上書きすることもありません。
整数や暗号への変換ではない
42と入力すると文字4と2が符号化されます。整数42の基数変換、負数の補数、浮動小数点、10進数・8進数、Base64、コードポイントのエスケープは別の作業です。2進数やHEXで書いても暗号化にはなりません。

テキストバイナリ変換のよくある質問

バイナリをテキストに戻せますか?

はい。バイト→テキストを選び、表記を2進数にして元の文字コードを指定してください。現在の結果なら「結果を逆変換」で入力への置き換えを確認できます。全バイトが完全で、選択したUTFの規則に従っている必要があります。

区切り文字オプションは何をしますか?

符号化したバイトの見せ方だけを変えます。元の文字列にあるスペースは内容なのでバイトに変換されます。復号時は完全なバイト間の空白やカンマを受け付けるため、出力の区切り設定を入力と一致させる必要はありません。

変換結果が文字化けしたり、空白になったりします。

まず元の文字コードとバイト順を確認してください。異なる文字コードでもエラーにならず、別の文字に復号される場合があります。NULやU+FEFFなどの見えない文字も保持するため、空白に見える結果ではバイト数も確認してください。

0と1以外の文字を入れるとどうなりますか?

対応する空白やカンマ以外はエラーになります。0b接頭辞、文字列、括弧などを自動で取り除きません。7桁のグループにもゼロを足さず、元の入力位置を示して変換全体を停止します。

なぜ1つの絵文字が複数のバイナリグループを生むのですか?

グループは文字ではなくバイトを表すためです。例えば😀のUTF-8表記はF0 9F 98 80という4バイトです。UTF-16でもサロゲート対により4バイトを使います。見た目が1つでも複数コードポイントからなる絵文字もあります。

解決しませんでしたか?

実際のバイト列を確認

テキストバイナリ変換に戻り、同じ文章をUTF-8と2種類のUTF-16で比較してください。次の作業に必要なのが表示テキストか実バイトかを確認して保存できます。

1バイトは常に8ビットです。1文字が1バイトとは限りません。