Ascii85 (Adobe)
Encode and decode data in Ascii85 (Base85), the compact format used in PostScript and PDF, with the Adobe <~ and ~> delimiters.
Ascii85
—
How PDF packs binary data into text
You opened a PDF in a text editor and hit a block wrapped in <~ and ~>, or you are debugging a PostScript stream and need to reproduce the encoding by hand. That block is Ascii85. This page encodes whatever text you type and prints the result with the Adobe delimiters already attached, refreshing on every keystroke.
The math groups four bytes into a 32-bit integer and writes it as five base-85 digits, adding 33 to each digit so it lands in the printable range from ! to u. Four zero bytes collapse into a single z, a shortcut that applies only to complete groups. An incomplete final group is padded with zeros and emitted with one character more than its byte count. Man plus a space becomes <~9jqo^~>, and Hello becomes <~87cURDZ~>.
The gain over Base64 is real but small, and the numbers are worth knowing: 5 characters per 4 bytes against 4 per 3, so 25% overhead instead of 33%. When pasting into a PDF, strip the leading <~ — the ASCII85Decode filter expects only ~> as its end-of-data marker, and some parsers choke on the prefix. This page encodes only, although the description mentions decoding, and input is read as UTF-8. It all runs in the browser.
Frequently asked questions
What is the z that shows up in the middle?
Can I paste this straight into a PDF stream?
Is this the same as Git's Base85 or RFC 1924?
Related Tools
ISBN → Book Citation (manual)
Format book citation in APA, MLA, Chicago and ABNT from manual fields: author, year, title, edition, publisher and ISBN.
Org-mode → HTML (basic)
Render simple Org-mode to HTML: asterisk headings, lists, /italic/, *bold* and #+BEGIN_SRC blocks.
JSON to Java Class
Convert JSON to a Java POJO class with getters/setters and inferred types. Supports nested classes and arrays as List. Everything in your browser.
JSON to TOML
Convert JSON to TOML, the readable config format used by Cargo (Rust), pyproject.toml, Hugo, etc. Supports strings, numbers, booleans, arrays and nested tables. Everything in your browser.
JSON to YAML
Convert JSON data to YAML format.
4-Band Resistor Color Code
Find the value of a 4-band resistor from its color code: two digits, a multiplier and tolerance. Result in ohms, with the tolerance as a percentage.