AZ Tools

Ascii85 / Base85 编码与解码

开发

Ascii85(也称 Base85)把四个字节打包为五个可打印 ASCII 字符,比 Base64 紧凑约 7%,同时保持文本安全。它是 PDF 流(ASCII85Decode 过滤器)与 PostScript 内部所用的二进制转文本编码,也是把小型二进制嵌入源码或配置的便捷方式。本工具将 UTF-8 文本或原始 hex 字节编码为 Ascii85,并解码回来。Adobe/PDF 变体用 <~ … ~> 定界符包裹输出,并把全零的四字节组压缩为单个 'z';纯变体仅输出字符流。解码是宽容的 — 两种情况都接受 z 简写与可选定界符 — 并校验每个组,拒绝被截断的单字符尾部以及超过 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 变体中,全零的四字节组写作单个 'z' 而非 '!!!!!',在含连续零的数据中节省空间。它只在组之间有效,绝不能出现在组内部。纯变体从不输出 'z'。本工具的解码器无论哪种变体都能识别 'z'。
<~ 与 ~> 标记是什么?
它们是 Adobe Ascii85 定界符,标记编码块的开始与结束(PDF 用 ~> 作为数据结束标记)。Adobe 变体在编码时添加它们;解码器若检测到会自动去除,因此可直接粘贴 PDF/PostScript 的 Ascii85。
为什么解码失败?
Ascii85 只使用 '!'(0x21)到 'u'(0x75)的字符以及 'z'。该范围外的字符、仅含一个字符的末尾组(无法表示任何完整字节)、或值超过 0xFFFFFFFF 的五字符组都是无效的,会被报告为错误。

相关工具