UTILS.
100% 浏览器内运行
🔠

Ascii85 / Base85 编码与解码

将字节编码为 Ascii85/Base85 并解码还原,支持标准变体和 Adobe(<~ ~>)变体,全程在浏览器中完成。

— 输出将显示在这里 —

关于此工具

Ascii85 / Base85 工具将二进制数据与 Ascii85(也称 Base85)互相转换,这是一种把四个字节打包成五个可打印字符的文本编码——比 Base64 紧凑约 25%。它用于 PostScript 和 PDF 流(Adobe 变体)以及补丁/差异格式中。一切都通过 TextEncoder/TextDecoder 在你的浏览器本地运行;你粘贴的内容不会上传。

编码时把输入按 4 字节大端分组,将每组读作 32 位无符号整数,然后反复对该值取模 85 并加 33,输出五个数字,使每个数字落在可打印范围 '!'(33)到 'u'(117)之间。全为零的一组会折叠成单个字符 'z'。若最后一组只有 n 个字节(1–3),会补零到四个后编码,再丢弃末尾 4−n 个输出字符,得到 n+1 个字符。Adobe 变体会用 '<~' 和 '~>' 把结果包裹起来。

解码则相反:去除空白和任何包裹符,'z' 展开为四个零字节,五字符一组按 value = Σ (cᵢ−33)·85^(4−i) 读取并写为四个大端字节,末尾若有 m 个字符(2–5)的不完整组,则用 'u'(值 84)补齐并保留 m−1 个字节。选择方向、标准或 Adobe 变体,以及输入字节是 UTF-8 文本还是十六进制。

常见问题

'z' 快捷方式是什么?
四个零字节(0x00000000)本会编码为 '!!!!!'。Ascii85 改为发出单个字符 'z' 作为压缩快捷方式。解码时,'z' 会展开回四个零字节——但仅当它出现在分组边界处,绝不会在五字符组的中间。
Ascii85 与 Base64 有何不同?
Base64 将 3 字节编码为 4 字符(33% 开销);Ascii85 将 4 字节编码为 5 字符(25% 开销),因此更紧凑。Base64 使用 64 符号字母表,而 Ascii85 使用从 '!' 到 'u' 的 85 个可打印 ASCII 符号。
Adobe 变体是什么?
Adobe 的 Ascii85 用于 PostScript 和 PDF,将载荷包裹在 '<~' 与 '~>' 分隔符之间。核心算法完全相同。选择 Adobe 变体会在编码时加上这些标记、在解码时去除它们;标准变体则省略它们。
我的数据会被上传吗?
不会。编码和解码完全在你的浏览器中使用纯 JavaScript 和 TextEncoder/TextDecoder 完成。没有任何内容发送到服务器,因此你可以安全处理私密或二进制数据。

更多工具