Skip to content

shigma/base16384.js

Repository files navigation

Base16384

Codecov downloads npm GitHub

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.

Description

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.

Comparison

Base64 Base16384
Overhead 33% 14%
Charset [0-9a-zA-Z+/] [\u4E00-\u8DFF]
Example RXhhbXBsZQ== 彞吖菁穥㴀

Usage

import { decode, encode } from 'base16384'

const buffer = encode('Example') // Uint16Array
new TextDecoder().decode(decode(buffer)) // 'Example'

API

encode(data)

  • data: string | Uint8Array original binary data
  • returns: Uint16Array base16384-encoded data

Encode binary data to base16384.

decode(data)

  • data: string | Uint16Array base16384-encoded data
  • returns: Uint8Array original binary data

Decode base16384 to binary data.

About

Base16384 encoder and decoder

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published