本页所说的 Ascii85
Base85 是一组用 5 个可打印字符表示 4 个字节的编码。本页实现 Adobe PostScript 与 PDF 常见的 Ascii85,普通数字字符范围从 ! 到 u。因为 85 的五次方略大于 2 的 32 次方,五个数字可以承载一个 32 位无符号分组。
Adobe 风格可以用 <~ 和 ~> 包住完整值,也可以把完整的四零字节组压缩为单个 z。这些规则并非所有 Base85 变体都支持,因此界面明确暴露选项。解码既接受有包装也接受无包装值,并按规范忽略 ASCII 空白。
最后一个不足四字节的分组需要特殊处理:临时补零计算五字符,但只输出 n+1 个。解码时用 u 临时补齐并丢掉多余字节;单个尾字符无法表示一个字节,会被拒绝。
如何使用 Ascii85 转换器
- 普通文本选择编码,已有 Ascii85 选择解码。
- 目标格式要求 Adobe 包装时启用 <~ ~>,原始字段则可关闭。
- 需要紧凑 Adobe 输出时启用 z;消费方要求展开零组时关闭。
- 解码可包含普通 ASCII 空白,其他字符仍会严格校验。
- 用 Hello 向量和往返测试核对定界符、尾组与简写策略。
Ascii85 与 Adobe 边界示例
Ascii85 的语法比 Base32、Base64 更多。示例展示纯输出、Adobe 定界符、部分分组、ASCII 空白和 z 简写。
| 输入 | 输出 | 转换方向 | 说明 |
|---|---|---|---|
Hello, world! |
<~87cURD_*#TDfTZ)+T~> |
编码 | Adobe 定界符:Adobe 包装;z 简写:启用 z 简写 — Adobe Hello 向量。 四字节组变为五字符,最后一个单字节尾组变为两个字符。 |
hello |
BOu!rDZ |
编码 | Adobe 定界符:纯 Ascii85;z 简写:启用 z 简写 — 纯 Ascii85。 相同算法也可以不带 Adobe 外层定界符。 |
<~ 87cUR
D_*#T DfTZ)+T ~> |
Hello, world! |
解码 | 带空白解码。 解码时忽略 ASCII 空格、制表符和换行。 |
z |
|