> encode | decode | ascii85 <

// 効率的なバイナリデータ表現のための Base85(ASCII85)エンコーディング

[EFFICIENT]

高効率

Base64 より効率的。同じデータで約 25% 小さく。

[SECURE]

ローカル処理

すべての変換はブラウザ内で完結。データは端末外に送信されません。

[STANDARD]

Adobe 標準

区切り <~ ~> を持つ ASCII85 形式を使用。PostScript と互換。

>> 技術情報

Base85 の仕組み:

Base85 は 85 の印字可能 ASCII 文字でバイナリデータを表現。4 バイト → 5 文字で、Base64 より効率的。

例:

"Hello" → <~87cURD]i~>

Base85 を使う理由:

  • >Base64 より約 25% 小さい
  • >PostScript/PDF の標準
  • >良好な圧縮効率
  • >印字可能 ASCII のみ
  • >4 バイトのゼロを表す 'z' ショートカット

>> よくある質問

Base85 エンコードとは?

Base85(ASCII85)は 85 個の印字可能 ASCII 文字でバイナリデータを表現する方式で、Base64 より効率的です。

Base85 が Base64 より効率的な理由は?

Base85 は 4 バイト → 5 文字(80%)、Base64 は 3 → 4(75%)。約 25% 省スペースです。

区切りの <~ ~> とは?

Adobe ASCII85 標準の区切りで、エンコードデータの開始/終了を示します。

'z' 文字の意味は?

4 つの連続したゼロバイト(\x00\x00\x00\x00)を表す特別なショートカットです。

// クイックリファレンス

入力ASCII85Base64
Man 9jqo^TWFuIA==
sure.F*2M7/cc3VyZS4=
Hello87cURDZSGVsbG8=
\0\0\0\0zAAAAAA==

// コード例

Adobe     <~87cURDZ~>            (PostScript / PDF, z = four zero bytes)
Python    base64.a85encode(b'Hello')  ->  b'87cURDZ'
          base64.b85encode(b'Hello')  ->  b'NM&qnZv'   (RFC 1924 / Git alphabet)
Z85       ZeroMQ, safe to embed in source strings
Size      4 bytes -> 5 chars  (Base64: 4 bytes -> 5.33 chars)

>> その他の質問

Q: ASCII85、Base85、Z85の違いは何ですか?

A: 3つとも同じ計算(4バイト→5文字)ですが文字セットが異なります。ASCII85(Adobe、PDF/PostScript)は ! から u までを使い、<~ … ~> で囲み、ゼロ4バイトは z で表します。Base85(RFC 1924、Git)は別の文字セット、Z85(ZeroMQ)はソースコードに埋め込みやすい文字セットです。

Q: Base85のサイズはBase64と比べてどうですか?

A: 4バイトがちょうど5文字になり、Base64の約5.33文字より短くなります。オーバーヘッドは33%から25%に下がり、同じデータで文字数が約25%減ります。

Q: Base85はURLで安全ですか?

A: いいえ。ASCII85には & , ; ' " < > などURL・HTML・シェルでエスケープが必要な文字が含まれます。URLにはBase64url、ソースコードにはZ85が向いています。