Ascii85 / Base85 Encoder & Decoder
Ascii85 (also called Base85) packs four bytes into five printable ASCII characters, making it about 7% more compact than Base64 while staying text-safe. It's the binary-to-text encoding used inside PDF streams (ASCII85Decode filter) and PostScript, and a handy way to embed small binaries in source or config. This tool encodes UTF-8 text or raw hex bytes to Ascii85 and decodes it back. The Adobe/PDF variant wraps output in <~ … ~> delimiters and compresses an all-zero four-byte group to a single 'z'; the plain variant emits just the character stream. Decoding is lenient — it accepts the z shortcut and the optional delimiters either way — and validates each group, rejecting truncated single-character tails and groups that overflow 32 bits. Everything runs locally; nothing is uploaded.
Adobe/PDF adds <~ ~> and the z zero shortcut. Decoding accepts both variants. Charset is ! to u (plus z).
How to use
- Pick Encode or Decode.
- Choose the Adobe/PDF or plain variant, and whether your data is UTF-8 text or hex bytes.
- Type or paste into the input box and copy the result.
Frequently asked questions
- How is Ascii85 different from Base64?
- Both turn bytes into printable ASCII, but Ascii85 uses 85 characters to encode 4 bytes as 5 characters (a 25% size increase) versus Base64's 64 characters encoding 3 bytes as 4 (a 33% increase). So Ascii85 output is a bit smaller, at the cost of using more punctuation characters that may need escaping in some contexts.
- What does the 'z' do?
- In the Adobe variant, a four-byte group that is all zeros is written as a single 'z' instead of '!!!!!', which saves space in data with runs of zeros. It's only valid between groups, never inside one. The plain variant never emits 'z'. This tool's decoder always understands 'z' regardless of variant.
- What are the <~ and ~> markers?
- They're the Adobe Ascii85 delimiters that mark the start and end of the encoded block (PDF uses ~> as the end-of-data marker). The Adobe variant adds them on encode; the decoder strips them automatically if present, so you can paste PDF/PostScript Ascii85 directly.
- Why did decoding fail?
- Ascii85 only uses the characters '!' (0x21) through 'u' (0x75), plus 'z'. A character outside that range, a final group with just one character (which can't represent any whole byte), or a five-character group whose value exceeds 0xFFFFFFFF is invalid and reported as an error.
Related tools
Base58 Encoder / Decoder (Bitcoin, IPFS)
Encode and decode Base58 with the Bitcoin, Ripple, or Flickr alphabet — from UTF-8 text or raw hex bytes, with correct leading-zero handling, entirely in your browser.
CBOR Decoder (Diagnostic Notation)
Decode CBOR (RFC 8949) from hex or base64 into readable diagnostic notation — integers, byte and text strings, arrays, maps, tags, floats, simple values, and indefinite-length items — entirely in your browser.
Base64 to Hex Converter (and back)
Convert a Base64 string to hexadecimal bytes and hex back to Base64, with URL-safe support, in your browser.
CRC-32 Calculator (CRC-32 & CRC-32C)
Compute the CRC-32 (IEEE 802.3, used by zip/gzip/PNG) or CRC-32C (Castagnoli) checksum of text or hex bytes, shown in lowercase hex, uppercase hex, and unsigned decimal — in your browser.
Bitwise Calculator
AND, OR, XOR, NOT and bit shifts on two integers — shown in binary, hex, unsigned and signed decimal, with selectable 8, 16, 32 or 64-bit width.
Hex Dump Viewer
Inspect text or a small file as offset + hex bytes + printable ASCII, like `xxd` or `hexdump -C`.