Ascii85 / Base85 编码与解码
Ascii85(也称 Base85)把四个字节打包为五个可打印 ASCII 字符,比 Base64 紧凑约 7%,同时保持文本安全。它是 PDF 流(ASCII85Decode 过滤器)与 PostScript 内部所用的二进制转文本编码,也是把小型二进制嵌入源码或配置的便捷方式。本工具将 UTF-8 文本或原始 hex 字节编码为 Ascii85,并解码回来。Adobe/PDF 变体用 <~ … ~> 定界符包裹输出,并把全零的四字节组压缩为单个 'z';纯变体仅输出字符流。解码是宽容的 — 两种情况都接受 z 简写与可选定界符 — 并校验每个组,拒绝被截断的单字符尾部以及超过 32 位的组。全部在本地运行;不上传任何内容。
Adobe/PDF 会添加 <~ ~> 与 z 零简写。解码接受两种变体。字符集为 ! 至 u(外加 z)。
使用方法
- 选择编码或解码。
- 选择 Adobe/PDF 或纯变体,以及数据是 UTF-8 文本还是 hex 字节。
- 在输入框输入或粘贴,然后复制结果。
常见问题
- 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 的五字符组都是无效的,会被报告为错误。
相关工具
Base58 编码 / 解码 (Bitcoin, IPFS)
用 Bitcoin、Ripple 或 Flickr 字母表进行 Base58 编解码 — 支持 UTF-8 文本或原始 hex 字节,正确处理前导零,全部在浏览器内完成。
CBOR 解码器 (诊断表示法)
将 hex 或 base64 的 CBOR(RFC 8949)解码为可读的诊断表示法 — 整数、字节与文本字符串、数组、映射、标签、浮点数、简单值与不定长项 — 全部在浏览器内完成。
Base64 与十六进制互转
在浏览器中将 Base64 字符串转换为十六进制字节,并将十六进制转换回 Base64,支持 URL-safe。
CRC-32 计算器 (CRC-32 与 CRC-32C)
计算文本或 hex 字节的 CRC-32(IEEE 802.3,zip/gzip/PNG 使用)或 CRC-32C(Castagnoli)校验和,以小写 hex、大写 hex 与无符号十进制显示 — 在浏览器内完成。
位运算计算器
对两个整数进行 AND、OR、XOR、NOT 和移位运算 —— 以二进制、十六进制、无符号和有符号十进制显示,可选 8、16、32 或 64 位宽。
Hex Dump 查看器
将文本或小文件以 偏移 + hex 字节 + 可打印 ASCII 显示,类似 `xxd` 或 `hexdump -C`。