ℹ️ About Base91 Encoder/Decoder
Base91, often styled basE91, is a binary-to-text encoding for representing arbitrary bytes as printable ASCII. It serves the same kind of transport role as Base64 or uuencode, but uses a larger alphabet so the encoded text is usually shorter. Base91 is encoding, not encryption or compression: anyone with a compatible decoder can recover the original bytes.
Common use cases:
- Convert binary, UTF-8 text, hex, or bit strings into compact text for logs, terminals, email, or configuration values.
- Reduce the size overhead of text-safe binary payloads when Base64 is acceptable but not compact enough.
- Round-trip small binary samples while debugging protocols, file formats, serialization code, or API payloads.
- Compare Base91 output size with Base64 using the live byte and overhead statistics.
Technical details: the original basE91 algorithm keeps a bit accumulator and emits two printable
characters for each 13 or 14 bits of input data, depending on the current value. Because two Base91 digits can express
91 x 91 values, the format can pack data more densely than Base64's fixed 6-bit characters. Base91 does not use
= padding, and the output length depends on the exact input bytes.
Alphabet and overhead: the reference basE91 project describes an advanced ASCII encoding with overhead up to about 23%, and sometimes lower, compared with the 33% expansion commonly associated with Base64. Base91 implementations are not all interchangeable: the exact alphabet matters, and some libraries substitute or omit punctuation for JSON, shell, or string-literal safety.
Examples: with this tool's current alphabet, Hello World! encodes to
>OwJh>Io0Tv!8PE, and fPNKd decodes to test. For hexadecimal input,
enter bytes such as 48656c6c6f and choose the Hexadecimal mode before encoding.
Limitations and compatibility:
- Base91 is less widely supported than Base64, so it is best for systems where both sides explicitly agree on Base91.
- Encoded output may contain punctuation that needs escaping in JSON strings, shell commands, HTML attributes, URLs, or SQL literals.
- Different Base91 alphabets or quote-safe variants can decode the same characters into different bytes.
- Decoded bytes are shown as text here; arbitrary binary data may not display cleanly if it is not valid UTF-8.
Privacy note: the interactive page processes text in your browser after the tool script loads. If you use the public API endpoint, the input is sent to the server for processing.
References: see the original basE91 project and RFC 4648 for the standard Base64/base-encoding comparison point.
API Usage Example:
POST /api/tools/encoding-decoding/base91
Content-Type: application/json
{
"text": "Hello World!",
"operation": "encode",
"format": "text"
}