|
|
vor 7 Jahren | |
|---|---|---|
| .. | ||
| old | vor 7 Jahren | |
| test | vor 7 Jahren | |
| test-moment | vor 7 Jahren | |
| .babelrc | vor 7 Jahren | |
| .travis.yml | vor 7 Jahren | |
| 1x1.png | vor 7 Jahren | |
| LICENSE.md | vor 7 Jahren | |
| README.md | vor 7 Jahren | |
| base64.html | vor 7 Jahren | |
| base64.js | vor 7 Jahren | |
| base64.min.js | vor 7 Jahren | |
| base64_utf8 | vor 7 Jahren | |
| bower.json | vor 7 Jahren | |
| package.js | vor 7 Jahren | |
| package.json | vor 7 Jahren | |
Yet another Base64 transcoder
<script src="base64.js"></script>
var Base64 = require('js-base64').Base64;
import { Base64 } from 'js-base64';
$ npm install --save js-base64
Base64.encode('dankogai'); // ZGFua29nYWk=
Base64.encode('小飼弾'); // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by-
Base64.decode('ZGFua29nYWk='); // dankogai
Base64.decode('5bCP6aO85by+'); // 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5bCP6aO85by-'); // 小飼弾
if (Base64.extendString) {
// you have to explicitly extend String.prototype
Base64.extendString();
// once extended, you can do the following
'dankogai'.toBase64(); // ZGFua29nYWk=
'小飼弾'.toBase64(); // 5bCP6aO85by+
'小飼弾'.toBase64(true); // 5bCP6aO85by-
'小飼弾'.toBase64URI(); // 5bCP6aO85by-
'ZGFua29nYWk='.fromBase64(); // dankogai
'5bCP6aO85by+'.fromBase64(); // 小飼弾
'5bCP6aO85by-'.fromBase64(); // 小飼弾
}
TypeScript 2.0 type definition was added to the DefinitelyTyped repository.
$ npm install --save @types/js-base64
.decode() vs .atob (and .encode() vs btoa())Suppose you have:
var pngBase64 =
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
Which is a Base64-encoded 1x1 transparent PNG, DO NOT USE Base64.decode(pngBase64). Use Base64.atob(pngBase64) instead. Base64.decode() decodes to UTF-8 string while Base64.atob() decodes to bytes, which is compatible to browser built-in atob() (Which is absent in node.js). The same rule applies to the opposite direction.