# Text 至 Ascii85 转换器

将文本编码为 Ascii85，或将 Ascii85 解码回文本。Ascii85 是 PostScript、PDF 流和 Git 二进制补丁中使用的 Base85 编码。该工具会将输入转换为 UTF-8 字节，每四个字节转换为五个 ! 到 u 之间的字符，将四个零字节写为 z，并可将结果包装在 Adobe 的 <~ 和 ~> 分隔符中。解码时支持这两种形式，并会忽略空白字符。

## 常见问题

### 什么是 Ascii85？

Ascii85 也称为 Base85，可将二进制数据编码为可打印的 ASCII 字符。它将每 4 个字节转换为 5 个字符，范围从 ! (33) 到 u (117)，因此数据只会增加 25%，而 Base64 会增加 33%。Adobe 在 PostScript 和 PDF 中使用它。

### 有哪些常见的 Ascii85 示例？

四个字符 Man 后跟一个空格会得到 9jqo^；Man is distinguished 会得到 9jqo^BlbD-BleB1DJ+*+F(f,q。文本 sure. 会得到 F*2M7/c。该工具会输出这些值，并能将它们解码还原。

### 字符 z 表示什么？

四个零字节组成的一组会写成单个 z，而不是 !!!!!。解码器会将 z 展开为四个零字节。z 只能出现在一组的开头。

### <~ 和 ~> 分隔符是什么？

Adobe 格式使用 <~ 和 ~> 标记 Ascii85 数据的开头和结尾。编码时启用该选项即可添加分隔符。解码时，如果存在这些分隔符，工具会将其移除，因此两种格式都能处理。

### 最后一个不完整分组如何处理？

如果输入长度不是 4 的倍数，最后一组会用零字节填充后进行编码，然后只保留前 n 加 1 个字符。解码时会用 u 填充并丢弃多余字节，从而准确还原原始输入。

### 为什么我的输入被拒绝？

有效字符为 ! 到 u，以及 z。v 到 y 之类的字符、分组内的 z、末尾仅剩一个字符，或值超过 32 位的分组都无效。空白字符会被忽略。

### 它与 Z85 或 RFC 1924 Base85 相同吗？

不同。ZeroMQ 的 Z85 和 RFC 1924 使用不同的 85 字符字母表。此工具实现的是 Adobe 和 btoa 风格的 Ascii85，用于 PostScript、PDF 和 Python 的 base64.a85encode。

### 为什么解码时会报告 UTF-8 无效？

Ascii85 通常用于保存压缩的 PDF 流等二进制数据。该工具只显示有效的 UTF-8 解码文本；如果数据无效，则会报告错误，而不会打印无法读取的字节。

### 非 ASCII 字符如何编码？

文本会先转换为 UTF-8，因此带重音符号的字母和表情符号在编码前会分别变成多个字节。解码后会还原为相同的字符。

### 最多可以转换多少数据？

每次请求最多可处理 5 MiB 文本。转换在服务器上运行，输入不会被存储。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
