A unicode-based encoding scheme that presents binary data (sequence of 8-bit bytes) in sequences of 14-bit printable Chinese characters. It saves 17% space compared to base64.
Inspired by fumiama/base16384.
Base16384 uses 16384 (214) Chinese characters (from \u4E00
to \u8DFF
) to represent binary data.
If the length of the binary data is not a multiple of 7, we will add a \u3D0x
(where x is the remainder modulo 7) after the output.
Base64 | Base16384 | |
---|---|---|
Overhead | 33% | 14% |
Charset | [0-9a-zA-Z+/] |
[\u4E00-\u8DFF] |
Example | RXhhbXBsZQ== |
彞吖菁穥㴀 |
import { decode, encode } from 'base16384'
const buffer = encode('Example') // Uint16Array
new TextDecoder().decode(decode(buffer)) // 'Example'
- data:
string | Uint8Array
original binary data - returns:
Uint16Array
base16384-encoded data
Encode binary data to base16384.
- data:
string | Uint16Array
base16384-encoded data - returns:
Uint8Array
original binary data
Decode base16384 to binary data.