Encode and decode Base91 instantly
Base91 is a compact, printable encoding that represents bytes using an alphabet of 91 characters. Because the alphabet is larger than Base64’s 64 characters, Base91 can often produce shorter output for the same underlying data.
You may run into Base91 in:
- niche data transport formats
- custom protocols
- compact “text-safe” payloads
- debugging or test vectors
This tool gives you a fast, browser-based way to encode and decode Base91 text with live output and practical options.
What this Base91 tool can do
- Encode UTF‑8 text → Base91
- Decode Base91 → UTF‑8 text
- Batch by newline (process many items at once)
- Trim lines in batch mode (optional)
- Wrap output at 76 characters (encode mode)
- Copy output in one click
No uploads, no accounts—everything runs locally.
How to use it
1. Choose Encode or Decode
- Encode turns your input text into Base91.
- Decode converts Base91 back into readable text.
You can switch modes instantly from the input panel.
2. Decide between batch and single input
- Batch by newline: each non-empty line is treated as a separate value.
- Single input: the whole textarea is treated as one value.
Batch mode is ideal when you’re working with lists or logs.
3. Optional formatting (Encode mode)
- Wrap @ 76 inserts a newline every 76 characters.
This is mainly for readability or compatibility with systems that prefer wrapped lines.
4. Copy your result
Use Copy in the output panel to copy the full result.
Base91 vs Base64: what’s the difference?
Both are reversible encodings, not encryption.
- Base64 uses a 64-character alphabet and is extremely common in web APIs.
- Base91 uses a 91-character alphabet, which can pack data more tightly and often results in shorter strings.
Why shorter output matters
Shorter encoded strings can help when:
- you’re embedding data into compact text channels
- payload size is constrained
- you want reduced overhead compared to Base64
That said, Base91 is less standard than Base64—so it’s typically used only when you know the target system expects it.
Batch mode: encode or decode lists safely
When Batch by newline is enabled:
- each line is processed independently
- empty lines remain empty to preserve alignment
- invalid lines show an
!ERROR:message, while valid lines still succeed
This is useful for:
- converting many tokens at once
- decoding data copied from logs
- transforming datasets without reformatting them first
If you want the cleanest batch input, enable Trim lines to remove leading and trailing whitespace.
Wrap @ 76: when to use it
Wrapping inserts line breaks every 76 characters during encoding.
Use it when:
- you’re pasting Base91 into systems with line length limits
- you want long strings to be easier to scan visually
- you’re formatting encoded content for documentation
If you’re using Base91 in APIs or code, you usually want wrapping off.
Practical use cases
Protocol and integration debugging
- decode a Base91 payload from logs
- verify an encoded value matches expected output
- quickly compare multiple inputs and outputs line-by-line
Compact text transport
- encode short payloads for transport through text-only channels
- reduce overhead compared to Base64 when a target system expects Base91
Testing and documentation
- generate stable encoded examples
- create encoded fixtures for unit tests
- build demo strings for documentation pages
Tips for reliable results
- Base91 is case-sensitive.
aandAare different. - Do not treat Base91 as secure. Anyone can decode it.
- If decoding fails, the most common causes are:
- stray characters added during copying
- smart quotes or formatting artifacts
- missing characters due to truncation
- If you expect binary output (like an image), remember this tool decodes to UTF‑8 text. For binary files you’ll want a Base91-to-file workflow.
Troubleshooting
“Invalid Base91 character”
- Your input contains a character outside the Base91 alphabet.
- Remove surrounding quotes, commas, or accidental copy artifacts.
- Ensure the string wasn’t modified by rich text formatting.
“I decoded it but the text looks wrong.”
- The decoded bytes may not represent UTF‑8 text (it could be binary data).
- If you’re decoding non-text payloads, use a tool that outputs bytes/files instead.
“Batch mode shows errors on some lines.”
- Each line is processed independently.
- Fix or remove the failing lines—other lines can still encode/decode correctly.
Perfect for
- developers working with Base91 payloads
- decoding or encoding values found in logs or niche protocols
- batch converting many strings at once
- generating compact encoded examples for testing
If you need a fast, private Base91 encoder/decoder with batch support and clean output controls, this tool is a simple way to get it done in your browser.