B85

Base85 Encoder and Decoder

Convert text to Base85 and decode Base85 back to readable text. Supports the Adobe Ascii85 alphabet (used in PDFs) and the ZeroMQ Z85 alphabet for safer string handling.

Runs in your browser ⚑ REST API available 🧩 Embeddable
Output
87cURD_*#4DfTZ)+T
Alphabet reference
Ascii85 Adobe / btoa, ASCII 33–117 85 chars
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
Z85 ZeroMQ RFC 32 85 chars
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#

Ascii85 includes quotes, backticks, and shell metacharacters β€” fine inside binary streams (PDFs, PostScript), awkward inside JSON, YAML, or shell commands. Z85 swaps those out for safer punctuation.

What is Base85?

Base85 packs four bytes into five printable characters β€” about 25% denser than Base64 β€” which is why Adobe picked the Ascii85 variant for embedded streams in PDF and PostScript. The four-zero-byte shortcut z keeps long runs of nulls compact.

Z85 uses a different 85-character alphabet that avoids quotes, backticks, and shell metacharacters, so encoded strings can be embedded in source code, JSON, and command lines without escaping. It's the encoding used by ZeroMQ for CurveZMQ keys.

When to use Base85

Reach for Base85 when payload size matters and the consumer can deal with a wider character set than Base64. Ascii85 is the right pick for PDF and PostScript pipelines; Z85 is better when the encoded value will be pasted into config files, JSON, YAML, or a shell.

This tool decodes Adobe's <~ ... ~> framing automatically and accepts both forms. Output never adds the markers, so feed Ascii85 directly into PDF tools that expect them by wrapping the result yourself.

Use the API

Call the same encoder server-side or from another origin. CORS is open, no auth required for the free tier.

curl "https://encode-decode.org/api/v1/base85\
?action=encode&input=Hello%20World"