Base91 Encoder And Decoder
Encode a string of text, or decode a string of Base91 text into standard text.
What is Base91?
Base91, commonly written as basE91, is a binary-to-text encoding created by Joachim Henke. It represents arbitrary data with a 91-character printable ASCII alphabet so encoded values can be copied through text fields, logs, examples, and other channels that are not intended for raw data. Compared with Base64, basE91 uses a larger alphabet, so encoded output is usually smaller than a Base64 string for the same input.
This tool converts input text to basE91 using the alphabet A-Z, a-z, 0-9, and the punctuation characters !#$%&()*+,./:;<=>?@[]^_`{|}~", then writes the encoded text to the output box. Decoding trims surrounding whitespace, rejects any character outside that basE91 alphabet, and returns text only when the decoded data is valid UTF-8.
Use Base91 when you need a compact text-safe representation for payload samples, debugging data, compact fixtures, or systems that already expect basE91. Its overhead depends on the byte pattern and is commonly described as about 14% to 23%, while Base64 is about 33% larger than the original bytes. Because the alphabet includes punctuation such as quotes, brackets, angle brackets, and backticks, encoded values may still need escaping before they are embedded in HTML, JSON, shell commands, URLs, or source code.
Base91 is an encoding, not encryption, compression, hashing, or authentication. Anyone with the encoded value can decode it, so do not treat Base91 text as protected secret material. The decoder is intended for the basE91 alphabet used by this page and for text that can be represented as UTF-8; arbitrary binary data or incompatible Base91 variants may not round-trip to readable text.