Skip to content

Repository files navigation

base64 Build statusCode coverage status

base64 is a robust base64 encoder/decoder that is fully compatible with atob() and btoa(), written in JavaScript. The base64-encoding and -decoding algorithms it uses are fully RFC 4648 compliant.

Installation

Via npm:

npm install base-64

In a browser:

<scriptsrc="base64.js"></script>

In Narwhal, Node.js, and RingoJS:

varbase64=require('base-64');

In Rhino:

load('base64.js');

Using an AMD loader like RequireJS:

require({'paths': {'base64': 'path/to/base64'}},['base64'],function(base64){console.log(base64);});

API

base64.version

A string representing the semantic version number.

base64.encode(input)

This function takes a byte string (the input parameter) and encodes it according to base64. The input data must be in the form of a string containing only characters in the range from U+0000 to U+00FF, each representing a binary byte with values 0x00 to 0xFF. The base64.encode() function is designed to be fully compatible with btoa() as described in the HTML Standard.

varencodedData=base64.encode(input);

To base64-encode any Unicode string, encode it as UTF-8 first:

varbase64=require('base-64');varutf8=require('utf8');vartext='foo © bar 𝌆 baz';varbytes=utf8.encode(text);varencoded=base64.encode(bytes);console.log(encoded);// → 'Zm9vIMKpIGJhciDwnYyGIGJheg=='

base64.decode(input)

This function takes a base64-encoded string (the input parameter) and decodes it. The return value is in the form of a string containing only characters in the range from U+0000 to U+00FF, each representing a binary byte with values 0x00 to 0xFF. The base64.decode() function is designed to be fully compatible with atob() as described in the HTML Standard.

vardecodedData=base64.decode(encodedData);

To base64-decode UTF-8-encoded data back into a Unicode string, UTF-8-decode it after base64-decoding it:

varencoded='Zm9vIMKpIGJhciDwnYyGIGJheg==';varbytes=base64.decode(encoded);vartext=utf8.decode(bytes);console.log(text);// → 'foo © bar 𝌆 baz'

Support

base64 is designed to work in at least Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, PhantomJS 1.9.0, Rhino 1.7RC4, as well as old and modern versions of Chrome, Firefox, Safari, Opera, and Internet Explorer.

Unit tests & code coverage

After cloning this repository, run npm install to install the dependencies needed for development and testing. You may want to install Istanbul globally using npm install istanbul -g.

Once that’s done, you can run the unit tests in Node using npm test or node tests/tests.js. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use grunt test.

To generate the code coverage report, use grunt cover.

Author

twitter/mathias
Mathias Bynens

License

base64 is available under the MIT license.

About

A robust base64 encoder/decoder that is fully compatible with `atob()` and btoa()`, written in JavaScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages