> adobe | postscript | pdf <

// Ascii85 - Adobe 用于 PostScript/PDF 的 Base85 编码

[ADOBE]

Adobe 标准

被全球 PostScript 和 PDF 文档采用的官方编码方案。

[EFFICIENT]

25% 开销

相比 Base64 更高效,体积仅增加约 25%。

[COMPACT]

零压缩优化

特殊的 'z' 字符可以高效表示连续四个零字节。

>> 技术说明

Ascii85 的工作原理:

Ascii85 将 4 个字节编码为 5 个可打印的 ASCII 字符(33–117)。它对全为零的字节组('z')使用特殊编码,并在 Adobe 的实现中使用 <~ ~> 作为包裹定界符。

示例:

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

为什么选择 Ascii85:

  • >Adobe PostScript/PDF 标准
  • >25% 开销,对比 Base64 约 33%
  • >针对零数据的高效压缩
  • >输出为可打印 ASCII 字符
  • >得到众多工具和库的支持

>> 常见问题

什么是 Ascii85 编码?

Ascii85(也叫 Base85)是 Adobe 提出的二进制到文本编码方案,用于 PostScript 和 PDF 文件。它使用 85 个可打印 ASCII 字符来表示二进制数据。

<~ ~> 分隔符是什么?

<~ 和 ~> 是 Adobe 实现中的 Ascii85 包裹定界符,用来标记编码数据的开始和结束,方便解析器在 PostScript/PDF 文件中找到被编码的片段。

Ascii85 与 Z85 有什么区别?

虽然它们都属于 Base85 变体,Ascii85 使用不同的字符集并允许空白字符,更适合 PostScript/PDF;而 Z85 针对源代码和协议做了优化。

字母 'z' 有什么含义?

'z' 是 Ascii85 中的一个特殊压缩符号,表示连续四个零字节,这让包含大量零的二进制数据编码更高效。

其他语言

Ascii85 Encoder Decoder — Base64.sh

Ascii85 编码解码器 | Adobe Base85 编码工具

免费在线 Ascii85(Base85)编码和解码工具。符合 Adobe PostScript/PDF 标准的编码方案,高效完成二进制到文本的转换,额外开销约 25%。

分享:

X Facebook LinkedIn Reddit

参考资料

我们如何确保结果正确

我们使用以下自动化测试验证此工具。下方保留测试用例的原始名称,便于查看实际断言和复现。

验证方法
把页面的编码交给 Python 解码,并把 Python 编码交给页面解码,覆盖 UTF-8、高位字节和不足四字节的尾组。
对比依据
Python 标准库 base64.a85encode / a85decode。
验证范围
只覆盖这些样本和边界;不代表所有输入均已证明正确。
测试源码与用例(点击文件名查看)
  • encoding-reliability.test.js
    • ASCII85 and Base85: real encoders and decoders agree with Python base64.a85 including UTF-8 and partial tuples

这些测试覆盖列出的样本和边界,不代表所有输入都已证明正确。往返测试和使用同一依赖库的检查,不属于独立交叉验证。