AZ Tools

Ascii85 / Base85 エンコーダー & デコーダー

開発

Ascii85(Base85 とも)は 4 バイトを 5 つの印刷可能 ASCII 文字にまとめ、Base64 より約 7% コンパクトでありながらテキストセーフです。PDF ストリーム(ASCII85Decode フィルタ)や PostScript の内部で使われる二進→テキストエンコーディングで、小さなバイナリをソースや設定に埋め込むのにも便利です。本ツールは UTF-8 テキストや生の hex バイトを Ascii85 にエンコードし、デコードして戻します。Adobe/PDF 版は出力を <~ … ~> 区切りで囲み、全ゼロの 4 バイトグループを単一の 'z' に圧縮します。素の版は文字ストリームのみを出力します。デコードは寛容で — z 短縮と任意の区切りをどちらも受け入れます — 各グループを検証し、切り詰められた 1 文字の末尾や 32 ビットを超えるグループを拒否します。すべてローカルで動作し、アップロードされません。

出力

Adobe/PDF は <~ ~> と z ゼロ短縮を追加します。デコードは両バリアントを受け付けます。文字セットは ! ~ u(および z)。

使い方

  1. エンコードまたはデコードを選択。
  2. Adobe/PDF か素の版、データが UTF-8 テキストか hex バイトかを選択。
  3. 入力欄に入力・貼り付けて結果をコピー。

よくある質問

Ascii85 は Base64 とどう違いますか?
どちらもバイトを印刷可能 ASCII にしますが、Ascii85 は 85 文字で 4 バイトを 5 文字に(サイズ 25% 増)、Base64 は 64 文字で 3 バイトを 4 文字に(33% 増)エンコードします。Ascii85 の出力はやや小さい反面、一部の文脈でエスケープが必要になりうる記号文字を多く使います。
'z' は何をしますか?
Adobe 版では、全ゼロの 4 バイトグループが '!!!!!' ではなく単一の 'z' として書かれ、ゼロが連続するデータで容量を節約します。グループ間でのみ有効で、グループ内には置けません。素の版は 'z' を出力しません。本ツールのデコーダは版に関係なく常に 'z' を理解します。
<~ と ~> のマーカーは何ですか?
エンコードブロックの開始と終了を示す Adobe Ascii85 区切りです(PDF は ~> をデータ終端マーカーに使用)。Adobe 版はエンコード時にこれを付け、デコーダは存在すれば自動的に取り除くため、PDF/PostScript の Ascii85 をそのまま貼り付けられます。
なぜデコードが失敗しましたか?
Ascii85 は '!'(0x21)から 'u'(0x75)までの文字と 'z' のみを使います。その範囲外の文字、文字が 1 つだけの最終グループ(どの完全なバイトも表現できない)、値が 0xFFFFFFFF を超える 5 文字グループは無効で、エラーとして報告されます。

関連ツール