> 编码 | 解码 | ascii85 <
// Base85(ASCII85)编码用于高效二进制数据表示
高效率
比Base64更高效,相同数据产生约25%更小的输出。
本地处理
所有转换都在您的浏览器中进行。您的数据永远不会离开您的设备。
Adobe标准
使用标准ASCII85格式,带<~ ~>分隔符,与PostScript兼容。
>> 技术信息
Base85工作原理:
Base85使用85个可打印ASCII字符编码二进制数据。每4个字节编码为5个字符,使其比Base64更高效。
示例:
"你好" → <~87cURD]i~>
为什么使用Base85:
- >比Base64更高效(约小25%)
- >PostScript和PDF文件标准
- >良好的压缩比
- >仅使用可打印ASCII字符
- >包含零字节的特殊'z'快捷方式
>> 常见问题
什么是Base85编码?
Base85,也称为ASCII85,是一种二进制到文本的编码方案,使用85个可打印ASCII字符来表示二进制数据,比Base64更高效。
为什么Base85比Base64更高效?
Base85将4字节编码为5字符(80%效率),而Base64将3字节编码为4字符(75%效率),使Base85大约提高25%的空间效率。
<~ ~>分隔符是什么?
<~和~>分隔符是Adobe ASCII85标准的一部分,标记编码数据的开始和结束。它们有助于在文档中识别Base85内容。
'z'字符代表什么?
'z'字符是ASCII85中的特殊快捷方式,表示四个连续的零字节(\x00\x00\x00\x00),使编码更高效。
// 速查表
| 输入 | ASCII85 | Base64 |
|---|---|---|
| Man | 9jqo^ | TWFuIA== |
| sure. | F*2M7/c | c3VyZS4= |
| Hello | 87cURDZ | SGVsbG8= |
| \0\0\0\0 | z | AAAAAA== |
// 代码示例
Adobe <~87cURDZ~> (PostScript / PDF, z = four zero bytes)
Python base64.a85encode(b'Hello') -> b'87cURDZ'
base64.b85encode(b'Hello') -> b'NM&qnZv' (RFC 1924 / Git alphabet)
Z85 ZeroMQ, safe to embed in source strings
Size 4 bytes -> 5 chars (Base64: 4 bytes -> 5.33 chars)
>> 更多问题
问:ASCII85、Base85 和 Z85 有什么区别?
答:三者数学原理相同(4 字节 → 5 字符),字母表不同:ASCII85(Adobe,用于 PDF/PostScript)使用 ! 到 u,以 <~ … ~> 包裹,并用 z 表示 4 个零字节;Base85(RFC 1924、Git)使用另一套字母表;Z85(ZeroMQ)的字母表便于安全嵌入源码。
问:Base85 与 Base64 相比体积如何?
答:4 字节恰好得到 5 个字符,而 Base64 约为 5.33 个。开销从 33% 降到 25%,相同数据的字符数约少 25%。
问:Base85 对 URL 安全吗?
答:不安全。ASCII85 含有 & , ; ' " < > 等在 URL、HTML 或 shell 中需要转义的字符。URL 请用 Base64url,源码嵌入更适合 Z85。