> encode | decode | ascii85 <
// 効率的なバイナリデータ表現のための Base85(ASCII85)エンコーディング
高効率
Base64 より効率的。同じデータで約 25% 小さく。
ローカル処理
すべての変換はブラウザ内で完結。データは端末外に送信されません。
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)を表す特別なショートカットです。
// クイックリファレンス
| 入力 | ASCII85 | Base64 |
|---|---|---|
| Man | 9jqo^ | TWFuIA== |
| sure. | F*2M7/c | c3VyZS4= |
| Hello | 87cURDZ | SGVsbG8= |
| \0\0\0\0 | z | AAAAAA== |
// コード例
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が向いています。