
b2a
btoa and atob (base64/base64url encoding and decoding) support for node.js or old browsers, with the Unicode Problems fixed.
The common problem of other libraries is that they fail to encode 16-bit strings. Since DOMStrings are 16-bit-encoded strings, in most browsers calling window.btoa on a Unicode string will cause a 'Character Out Of Range' exception if a character exceeds the range of a 8-bit byte (0x00~0xFF).
This module will try to reuse window.atob and window.btoa when possible.
Install
$ npm install b2a
Usage
import {
btoa,
atob,
btoau,
atobu
} from 'b2a'
btoa('a')
window.btoa('a')
window.btoa('中文')
btoa('中文')
window.atob('5Lit5paH')
atob('5Lit5paH')
btoau('μπορούμε')
atobu('zrzPgM6_z4HOv8-NzrzOtQ==')
base64url support since 1.1.0
Since 1.1.0, btoau and atobu are introduced to encode and decode in base64url format.
import {btoau} from 'b2a'
location.href = `https://domain.com/login?return_to=${btoau(location.href)}`
License
MIT