Ascii85
その値を85進記数法で表し、それぞれの桁0〜84の値をASCIIの印刷可能文字である '!'(33)〜 'u'(117)に対応させる。 ただし、効率の良い圧縮のために頻出する全ビットが0であるブロックは "!!!!!" の代わりに 'z' の1文字を用いる。
例えば 'z' が含まれる場合など、復号エラーによって、2 − 1(Ascii85での"s8W-!")より大きな値が復号される可能性がある。空白文字は行長の制限などにより生じる可能性があるため無視される。
Ascii85の欠点の1つに、バックスラッシュやアポストロフィーのようなエスケープ文字を含む点が存在する。エスケープ文字はプログラミング言語や通信プロトコルにおいて特殊な意味を持つ。Z85のような85を基とした他のエンコーディングではソースコード内に存在しても安全な設計となっている。
Thomas Hobbes の Leviathan からの引用
Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.
この文章をAscii85で変換すると以下の文章となる。 ただし "<~" と "~>" は開始と終了を表す
変換過程
最後の4バイトは対応する文字がない部分があるため、0埋めを行う。 Since the last 4-tuple is incomplete, it must be padded with three zero bytes:
3バイトが0埋めされているため、最後の 'YkO'は出力しない。
復号は逆操作を行う。ただし、最後の5文字だけは 'u' で埋めて計算する。
入力の最後は 'u' で埋めたため、出力の最後の3バイトは無視し、原文のピリオドまでを復号結果とする。 入力に '0' のみのブロックが存在しないため、今回のAscii85では 'z' は現れない。