🔤 Base91 Encoder/Decoder

🔧
📝
💡 Examples:"Hello World", binary data, JSON, or any text 💡 Examples: >OwJh>}AQ;r@@Y?F, fPNKd, or any Base91 encoded string
⚙️
⚡
📤

            
📊
Input Size:
Output Size:
Overhead:
Efficiency:
vs Base64:
Base91: bytes | Base64: bytes | bytes (%)
🔤
Showing unique characters used in Base91 encoding
⚠️
💡
To Encode: Enter any text or binary data to convert to Base91 format
To Decode: Enter Base91 encoded text to convert back to original data
Input Formats: Plain text (UTF-8), hexadecimal, or binary strings
Advantages: More efficient than Base64 with shorter output and no padding required

ℹ️ 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"
}
Ready