A simple Base64 encode / decode function for JavaScript supports UTF-8 encoding.
npm install hi-base64bower install hi-base64
For node.js, you can use this command to install:
npm install hi-base64
JavaScript
base64.encode('String to encode');
base64.decode('Base64 string to decode');
base64.decode.bytes('Base64 string to decode as bytes');
`$3
If you use node.js CommonJS, you should require the module first:
`JavaScript
const { encode, decode } = require('hi-bas64');
`$3
If you use node.js ESM, you can import like this:
`TypeScript
import { encode, decode } from 'hi-bas64';
`$3
If you use TypeScript, you can import like this:
`TypeScript
import { encode, decode } from 'hi-bas64';
`$3
It supports AMD:
`JavaScript
require(['your/path/base64.js'], function (base64) {
// ...
});
`$3
#### base64.encode(str, asciiOnly, format)
Encode string to base64, set asciiOnly to true for better performace.##### str:
String
String to encode.##### asciiOnly:
Boolean (default: false)
Specify the string encoding is ASCII.##### format:
String (default: rfc_4648)
Specify the output format. can be following:
* rfc_4648
* rfc_4648_url_safe
* rfc_2045
* rfc_2152
* rfc_3501Please refer to wiki.
#### base64.decode(base64Str, asciiOnly)
Decode base64 string, set asciiOnly to true for better performace.
base64.decode.string is alias to this method.##### base64Str:
String
Base64 string to decode.##### asciiOnly:
Boolean (default: false)
Specify the string encoding is ASCII.#### base64.decode.bytes(base64Str)
Decode base64 string and return bytes
Array.##### base64Str:
String
Base64 string to decode.#### base64.decode.uint8Array(base64Str)
Decode base64 string and return bytes
Uint8Array.##### base64Str:
String
Base64 string to decode.Example
Code
`JavaScript
base64.encode('Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.');
// TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=base64.decode('VGhpcyBpcyB0ZXN0Lg==');
base64.decode.string('VGhpcyBpcyB0ZXN0Lg==');
// This is test.
/ Supports UTF-8 encoding: /
base64.encode('中文');
// 5Lit5paH
/ Supports bytes: /
base64.encode([0, 1, 2]);
base64.encode(new Uint8Array([0, 1, 2]));
// AAEC
base64.encode(new ArrayBuffer(3));
// AAAA
base64.decode.bytes('VGhpcyBpcyB0ZXN0Lg==');
// [84, 104, 105, 115, 32, 105, 115, 32, 116, 101, 115, 116, 46]
base64.decode.uint8Array('VGhpcyBpcyB0ZXN0Lg==');
// Uint8Array(13) [84, 104, 105, 115, 32, 105, 115, 32, 116, 101, 115, 116, 46]
``