すべてのエンコードを一括表示

テキストを一度入力または貼り付けるだけで、2進数、16進数、Base32 系、Base58、Base64、Base85 系、Base91 などの結果を並べて表示します。各結果には個別の「コピー」ボタンがあります。

すべてブラウザ内で処理され、データはアップロードされません。

使い方

  1. 入力欄にテキストを入力または貼り付けます。
  2. 入力に合わせてすべてのエンコード結果がリアルタイムで更新されます。対象は 2進数、8進数、10進数、16進数、Base32 の各種類、Base36 から Base91 まで、そして uuencode と xxencode です。
  3. 出力を比べて、最も短いものや、使用できる文字だけで構成されたものを選びます。
  4. 必要な結果の横にある「コピー」をクリックします。

1 つの入力からすべてのエンコードを生成

このページの各エンコード方式は、同じバイト列をそれぞれ異なる文字の組み合わせに変換します。並べて比較すると、プロジェクトで使うエンコード方式を選んだり、ログや設定ファイルで見つけた文字列の正体を見分けたり、形式ごとの違いを理解したりするのに最も手早い方法です。テキストは UTF-8 のバイト列としてエンコードされるため、アクセント付きの文字は 2 バイト、漢字やかなは 3 バイトになります。処理はすべてブラウザ内で行われます。

  • 1 バイトずつ数値で表す方式。2進数、8進数、10進数は、各バイトを個別に書き出します。読みやすい反面、長くなります。
  • ビットグループ方式。16進数、Base32(Base32hex、Crockford、z-base-32 を含む)、Base64、Base64URL は 1 文字に一定のビット数を割り当てるため、出力の長さは入力の長さだけで決まります。
  • 多倍長整数方式。Base36、Base58、Base62 は、入力全体を 1 つの大きな整数として扱います。値によって長さが 1 文字ほど変わることがあり、先頭のゼロバイトは先頭の文字として保持されます。
  • ブロック方式。Base45 は 2 バイトを 3 文字に、Ascii85、Z85、Base85 は 4 バイトを 5 文字に変換し、Base91 は 2 文字ごとに 13 または 14 ビットを詰め込みます。
  • 行単位の方式。uuencode と xxencode は、かつて電子メールや Usenet で使われていた形式です。データを行単位で書き出し、各行の先頭に長さを表す文字を置きます。

出力サイズの比較

各エンコード方式が入力 1 バイトあたりに必要とする文字数と、SHA-256 ハッシュ値や Ed25519 公開鍵のような 32 バイトの値をエンコードしたときの長さは次のとおりです。

エンコード方式1 バイトあたりの文字数32 バイトをエンコードした長さ
Base16(16進数)2.064
Base321.656(パディングなしで 52)
Base36約 1.5549 または 50
Base451.548
Base58約 1.3743 または 44
Base62約 1.3442 または 43
Base64約 1.3344(パディングなしで 43)
Base851.2540
Base91約 1.2339 または 40

16進数から Base64 に変えると、長さは 3 分の 1 短くなります。さらに Base64 から Base91 に変えても、短くなるのは約 8% にとどまります。

エンコード方式の選び方

出力が最も短いものが最適とは限りません。Ascii85 は引用符やバックスラッシュを、Base91 はダブルクォートを含むことがあるため、どちらも JSON、HTML、シェルコマンドの中ではエスケープが必要になる場合があります。文字列をどこで使うのかを考えて選んでください。

  • URL やファイル名:Base64URL、Base58、Base62。
  • 読み上げや手入力:見間違えやすい文字を除いた Crockford Base32 または Base58。
  • 大文字と小文字を区別しないシステム:16進数、Base32、Base36。
  • QR コード:QR コードの英数字モードで使える文字だけで構成される Base45。
  • PDF、Git、ZeroMQ でのコンパクトなテキスト表現:Ascii85、Base85、Z85。
  • 最大限の互換性:ほぼすべての言語とプラットフォームが対応している Base64。

よくある質問

出力が最も短くなるエンコード方式はどれですか?

このページのエンコード方式の中では、Base91 が 1 バイトあたり約 1.23 文字で最もコンパクトで、次いで Ascii85、Z85、Base85 が 1.25 文字です。Base64 は約 1.33 文字が必要ですが、対応している環境がはるかに多いため、一般的に標準として使われています。

同じサイズの入力でも、Base58 や Base62 の結果の長さが異なるのはなぜですか?

入力全体を 1 つの大きな数として変換するため、長さはサイズだけでなく値によっても変わります。また、先頭のゼロバイト 1 つごとに先頭の文字が 1 つ増えます。16進数、Base32、Base64 では、同じバイト数なら常に同じ長さになります。

このページで文字列をデコードできますか?
このページはエンコード専用です。不明な文字列の形式を調べるには、エンコード判別ツールに貼り付けてください。文字列をあるエンコード方式から別の方式に変換するには、エンコード変換ツールを使ってください。
2進数の出力が長いのはなぜですか?

2進数では 1 バイトごとに 8 桁と区切り文字を書くため、16進数の 4 倍以上の長さになります。個々のビットを確認するための形式で、データの保存や送信には向いていません。

入力したテキストはサーバーに送信されますか?

いいえ。すべてのエンコードはブラウザ上の JavaScript で計算され、テキストがお使いのデバイスの外に出ることはありません。