encode Mode

Batch Input

0 Items

0 Output lines

0 Output chars

Ascii85 (Adobe) Variant

Encode and decode Base85 in seconds

Base85 encodings are a compact way to represent bytes as printable text. Compared to Base64, Base85 typically produces shorter output because it packs data more efficiently (85 symbols instead of 64).

You’ll encounter Base85 in:

  • PostScript and PDF workflows (Ascii85 / Adobe)
  • debugging and data transport
  • message systems and libraries that use Z85 (ZeroMQ)
  • places where you want a compact printable representation of bytes

This tool gives you a fast, browser-based way to encode or decode Base85 with two popular variants:

  • Ascii85 (Adobe)
  • Z85 (ZeroMQ)

It also supports practical “power-user” features like batch processing, trimming, wrapping, and Ascii85 delimiters.


What this Base85 tool can do

  • Encode text → Ascii85 (Adobe)
  • Decode Ascii85 → text
  • Encode text → Z85 (ZeroMQ) (with required input rules)
  • Decode Z85 → text
  • Batch by newline (encode/decode many items at once)
  • Trim lines in batch mode (optional)
  • Wrap output at 76 characters (encode mode)
  • Use or recognize Ascii85 <~ ~> delimiters
  • Copy output with one click

Everything runs locally. No uploads.


How to use it

1. Choose your variant

Pick one:

  • Ascii85 (Adobe) → the most flexible option for general use
  • Z85 (ZeroMQ) → strict rules on encoding input length, common in ZeroMQ-related contexts

2. Choose Encode or Decode

  • Encode: converts your text into Base85
  • Decode: converts Base85 back into readable text

3. Use batch mode if you have lists

Turn on Batch by newline to treat each non-empty line as a separate item.

This is perfect when you have:

  • many values to encode/decode
  • exports from logs
  • lists of tokens
  • multiple Base85 strings to inspect

4. Use optional formatting (encode mode)

  • Wrap @ 76: inserts line breaks every 76 characters
  • Use <~ ~> (Ascii85 only): wraps output using Adobe delimiters

5. Copy the result

Click Copy on the output panel to copy everything.


Base85 vs Base64 (why Base85 exists)

Both Base64 and Base85 are reversible encodings, not encryption.

The main difference is efficiency:

  • Base64 uses 64 characters → output is commonly ~33% larger than the raw bytes
  • Base85 uses 85 characters → output is typically smaller than Base64 for the same input

That extra compactness can matter when you’re embedding data into text-heavy formats or sending data through channels where size matters.


Ascii85 (Adobe) explained

Ascii85 is the variant often seen in PostScript and PDF systems.

Notable behaviors:

  • It encodes in 4-byte blocks and produces 5 characters per block.
  • It supports optional delimiters: <~ at the start and ~> at the end.
  • It supports a shorthand: a single z represents four zero bytes (0x00000000), which makes sequences of zeros much shorter.

Delimiters: when to use <~ ~>

Some Adobe/PostScript workflows expect the encoded data to be wrapped like:

<~87cURD]i,"Ebo7~>

If you’re using Base85 in those ecosystems, enabling Use <~ ~> helps ensure compatibility.

This tool can also decode Ascii85 whether the delimiters are present or not.


Z85 (ZeroMQ) explained

Z85 is a Base85 encoding standardized by the ZeroMQ project.

It uses a specific alphabet designed to be safe in many text contexts.

The important rule: input length must be divisible by 4 bytes

When encoding, Z85 requires the input byte length to be a multiple of 4.

That is why you may see:

  • “Z85 encode requires input length divisible by 4 bytes”

If your text contains non-ASCII characters, the UTF‑8 byte length can change in ways that are not obvious by counting characters.

If you need a more flexible Base85 option, use Ascii85.


Wrap @ 76: what it’s for

Wrapping inserts a newline every 76 characters in the encoded output.

Use it when:

  • you want long Base85 strings to be easier to read
  • you’re pasting into systems that expect wrapped lines
  • you want predictable line widths in logs or documentation

For most APIs and modern tooling, leaving wrapping off is typically best.


Practical use cases

PDF / PostScript work

  • encoding data streams
  • debugging embedded content
  • working with Adobe-style Ascii85 blobs

ZeroMQ / Z85 workflows

  • inspecting or generating Z85 strings
  • decoding Z85 payloads
  • converting between raw bytes and text-safe strings

Development and debugging

  • quickly inspect an unknown Base85 string
  • batch decode logs that contain Base85 chunks
  • encode test vectors for documentation

Data transport in text-only systems

  • embedding byte-like payloads into text formats
  • sending compact encoded data through channels that dislike binary

Tips for reliable results

  • Base85 is not encryption. Do not use it to “hide” data.
  • Prefer Ascii85 if you want fewer restrictions and broad compatibility.
  • Use Z85 when you specifically need Z85 output and can satisfy the 4-byte rule.
  • If you hit errors in batch mode, remember each line is processed independently—valid lines will still work.
  • If decoding produces “garbage” characters, the decoded bytes may not represent UTF‑8 text.

Troubleshooting

“Invalid Ascii85 character”

  • The string contains characters outside the Ascii85 range.
  • Remove surrounding quotes, stray punctuation, or accidental copy artifacts.

“Invalid Ascii85 length”

  • Ascii85 groups data into blocks. A trailing partial block must still meet minimum requirements.
  • Ensure the string is complete and not truncated.

“Z85 input length must be divisible by 5 characters” (decode)

  • Z85 output comes in 5-character chunks.
  • If the input isn’t a multiple of 5, it’s incomplete or contains extra characters.

“Z85 encode requires input length divisible by 4 bytes”

  • Your UTF‑8 text isn’t a multiple of 4 bytes.
  • Shorten/adjust the text, or use Ascii85 instead.

Perfect for

  • developers working with Base85, Ascii85, or Z85
  • PDF/PostScript debugging and inspection
  • ZeroMQ payload workflows
  • batch decoding lists of values

If you need a fast, private Base85 tool that supports both the Adobe and ZeroMQ variants, this is the simplest way to encode and decode Base85 in your browser.

Frequently Asked Questions

“Base85” is the general idea: encode bytes using an alphabet of 85 characters to get more compact text than Base64. Ascii85 (Adobe) is a widely used Base85 variant with optional <~ ~> delimiters and a shorthand 'z' for four zero bytes. Z85 (ZeroMQ) is a different Base85 alphabet designed for safe use in text contexts, but it requires input byte length divisible by 4 when encoding.

Yes. Choose Ascii85 (Adobe), paste text, and the tool outputs Ascii85. You can also decode Ascii85 back to text. Optional <~ ~> delimiters are supported on encode and recognized on decode.

Z85 encoding requires the input byte length to be divisible by 4. If your UTF‑8 text is not a multiple of 4 bytes, Z85 cannot encode it without padding. In that case, use Ascii85 or adjust the input.

It inserts a newline every 76 characters (encode mode only). This is useful for readability and for some legacy/MIME-style formatting conventions.

No. Base85 encodings are not encryption. They are reversible text encodings that make binary or byte data easier to transport or embed in text systems.

No. Everything runs locally in your browser. Your input is encoded/decoded client-side and never uploaded.

Explore Our Tools

Read More From Our Blog