- Notifications
You must be signed in to change notification settings - Fork0
Base64 encoding, decoding on both modern browser and Node.js
License
NotificationsYou must be signed in to change notification settings
waitingsong/base64
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Base64 encoding/decoding in pure JS on both modern Browsers and Node.js based onbase64-js.
Also supportsURL-safe base64
- Supports typeof
string
,number
andbigint
- Supports
ArrayBuffer
orUint8Array
- Encoding/Decoding via
TextEncoder
/TextDecoder
under browser andBuffer
under Node.js - Building various modules
ESM
,UMD
andCJS
- Ability ofTextEncoder andTextDecoder
- Polyfilltext-encoding for Edge
- v10.4.0+ for
bigint
base64 encoding - ICU installation for base64 decoding with char encodings other then
utf-8
andutf-16le
npm install @waiting/base64
See theDocs for details
import{b64encode,b64fromBuffer,b64urlEncode}from'@waiting/base64'b64encode('A')==='QQ=='b64encode('schöne')==='c2Now7ZuZQ=='b64encode(1n)===b64encode(1)// bigint -> 'MQ=='b64encode('𠮷')===b64encode('\uD842\uDFB7')===b64encode('\u{20BB7}')// '8KCutw=='constu8arr=Uint8Array.from([0xe4,0xb8,0xad,0xe6,0x96,0x87])b64fromBuffer(u8arr)===b64encode('中文')// '5Lit5paH'// URL-safeb64urlEncode('A')==='QQ'b64urlEncode('中文测试')==='5Lit5paH5rWL6K-V'
import{b64decode,b64urlDecode}from'@waiting/base64'b64decode('MQ==')==='1'b64urlDecode('MQ')==='1'
import{b64toURLSafe,b64fromURLSafe}from'@waiting/base64'// base64 -> URL-safe base64b64toURLSafe('QQ==')==='QQ'b64toURLSafe('5Lit5paH5rWL6K+V')==='5Lit5paH5rWL6K-V'// URL-safe base64 -> base64b64fromURLSafe('QQ')==='QQ=='b64fromURLSafe('0J_RgNC40LLQtdGCLCDQvNC40YAh')==='0J/RgNC40LLQtdGCLCDQvNC40YAh'
See theDocs for details
<scripttype="module">import{b64encode,b64urlEncode}from'./base64.esm.min.js'console.log(b64encode('A'))// 'QQ=='console.log(b64urlEncode('A'))// 'QQ'console.log(b64encode('\uD842\uDFB7'))// '8KCutw=='</script>
<!-- polyfill for Edge Note: text-encoder-lite parse 4-bytes UTF-8 char incorrectly, so use text-encoding instead. see: https://github.com/solderjs/TextEncoderLite/issues/16--><!--<script src="https://raw.githubusercontent.com/inexorabletash/text-encoding/master/lib/encoding-indexes.js"></script><script src="https://raw.githubusercontent.com/inexorabletash/text-encoding/master/lib/encoding.js"></script>--><scriptsrc="./base64.umd.min.js"></script><script>// global variable base64console.log(base64.b64encode('A'))console.log(base64.b64urlEncode('A'))console.log(base64.b64encode('\uD842\uDFB7'))</script>
npm runtest# for browsers FireFox and Chromenpm run test:browser# for browsers all available on this clientcd .config&& npm inpm run browser:detect
About
Base64 encoding, decoding on both modern browser and Node.js
Topics
Resources
License
Stars
Watchers
Forks
Packages0
No packages published