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
// 'YQ=='window // 'YQ==', works fine with ASCII characters // Oooooooops!// In most browsers, calling btoa() on a Unicode string// will cause a Character Out Of Range exception.window // throws InvalidCharacterError ❌ // '5Lit5paH' ✅ // Oooooooops!window // 'ä¸æ', oh no! ❌ // '中文', great! ✅ // 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.
locationhref = `https://domain.com/login?return_to=`
License
MIT