Base91
Base91 はバイナリデータを 91 種類の印刷可能 ASCII 文字へ符号化する方式であり、膨張率は約 23% で Base64 よりコンパクトである。
目的
出力全体を印刷可能 ASCII に保ったままアルファベットの利用率を最大化し、符号化のオーバーヘッドを減らす。
メカニズム
入力 13 ビットごとに基数 91 の文字 2 文字を対応させる(91^2 = 8281 > 2^13 = 8192)。入力からビットを蓄積し、13 ビットが揃った時点で文字のペアを出力し、末尾の不足グループは 1 文字を出力する。
ユースケース
- コンパクトなバイナリからテキストへの表現
- データ URI へのバイナリ埋め込み
- QR コードでの高密度データエンコード
- ログやデバッグ出力
例
- 入力
Hello WorldOutput>OwJh>Io0Tv!lEAbout 10% shorter than Base64
よくあるエラー
- Assuming Base91 is a standardized encoding (it is a non-RFC proposal)
- Make sure both sides use the same implementation and alphabet
関連用語
Base64
Base64 は任意のバイナリデータを 64 種類の印刷可能 ASCII 文字(A-Z、a-z、0-9、+、/)へ写像し、バイナリデータをテキスト専用チャネルで伝送できるようにする。 用語集
Ascii85
Ascii85(Base85)は 4 バイト(32 ビット)ごとに 5 文字の ASCII へ写像し、膨張率は約 25% と Base64 の約 33% より低い。PDF や PostScript で使われる。 用語集
Base58
Base58 は 58 文字を使う人間向けのバイナリテキスト変換であり、紛らわしい 0、O、I、l、+、/ を Base64 から除外している。暗号通貨アドレスで最もよく知られる。 用語集