Base65536 to Text Converter
Decode Base65536-encoded strings back to plain text instantly. Client-side converter with full Unicode block mapping and UTF-8 support.
About
Base65536 is a binary-to-text encoding that stores 2 bytes per Unicode code point, achieving greater density than Base64 (which stores only 6 bits per character). It was designed by Sam Hughes for safe transit through UTF-16-capable channels such as Twitter. The encoding selects 256 Unicode block start points, each block containing 256 consecutive safe code points, forming a lookup table that maps each pair of input bytes to a single character. A separate set of 256 βpaddingβ blocks handles the final odd byte when input length is not even. Incorrect decoding produces garbled binary output or silent data corruption with no checksum to alert you. This tool implements the full repertoire mapping client-side with zero server dependency. It approximates the reference specification assuming well-formed input; malformed code points outside the known repertoire will produce an explicit error rather than silent failure.
Formulas
Each Base65536 character c with code point cp is decoded by locating which block it belongs to:
The offset within the block gives one byte value:
For a 2-byte block at repertoire index b:
For a 1-byte (padding) block at repertoire index b:
The resulting byte array is then decoded as UTF-8 via TextDecoder to produce the final plaintext string.
Where cp = Unicode code point of the encoded character, b = repertoire index (0 - 255) mapping block start to byte value, offset = position within the 256-character block.
Reference Data
| Block Start (Hex) | Block Start (Decimal) | Type | Bytes Encoded | Example Char |
|---|---|---|---|---|
| U+03400 | 13312 | 2-byte | 2 | γ |
| U+03500 | 13568 | 2-byte | 2 | γ |
| U+03600 | 13824 | 2-byte | 2 | γ |
| U+03700 | 14080 | 2-byte | 2 | γ |
| U+03800 | 14336 | 2-byte | 2 | γ |
| U+03900 | 14592 | 2-byte | 2 | γ€ |
| U+03A00 | 14848 | 2-byte | 2 | γ¨ |
| U+03B00 | 15104 | 2-byte | 2 | γ¬ |
| U+03C00 | 15360 | 2-byte | 2 | γ° |
| U+03D00 | 15616 | 2-byte | 2 | γ΄ |
| U+03E00 | 15872 | 2-byte | 2 | γΈ |
| U+03F00 | 16128 | 2-byte | 2 | γΌ |
| U+04000 | 16384 | 2-byte | 2 | δ |
| U+04100 | 16640 | 2-byte | 2 | δ |
| U+04200 | 16896 | 2-byte | 2 | δ |
| U+04300 | 17152 | 2-byte | 2 | δ |
| U+04400 | 17408 | 2-byte | 2 | δ |
| U+04500 | 17664 | 2-byte | 2 | δ |
| U+04600 | 17920 | 2-byte | 2 | δ |
| U+04700 | 18176 | 2-byte | 2 | δ |
| U+1B400 | 111616 | 1-byte (pad) | 1 | Padding char |
| Full repertoire: 256 two-byte blocks + 256 one-byte padding blocks mapped from the Base65536 specification. | ||||