dankogai/js-base64 là dự án mã nguồn mở trên GitHub, viết chủ yếu bằng JavaScript, với 4.4k sao. Base64 implementation for JavaScript
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
This good old way loads Base64 in the global context (window). Though Base64.noConflict() is made available, you should consider using ES6 Module to avoid tainting window.
As an ES6 Module
locally…
import { Base64 } from 'js-base64';
// or if you prefer no Base64 namespace
import { encode, decode } from 'js-base64';
or even remotely.
<script type="module">
// note jsdelivr.net does not automatically minify .mjs
import { Base64 } from 'https://cdn.jsdelivr.net/npm/[email protected]/base64.mjs';
</script>
<script type="module">
// or if you prefer no Base64 namespace
import { encode, decode } from 'https://cdn.jsdelivr.net/npm/[email protected]/base64.mjs';
</script>
node.js (commonjs)
const {Base64} = require('js-base64');
Unlike the case above, the global context is no longer modified.
You can also use esm to import instead of require.
require=require('esm')(module);
import {Base64} from 'js-base64';
SYNOPSIS
let latin = 'dankogai';
let utf8 = '小飼弾'
let u8s = new Uint8Array([100,97,110,107,111,103,97,105]);
Base64.encode(latin); // ZGFua29nYWk=
Base64.encode(latin, true); // ZGFua29nYWk skips padding
Base64.encodeURI(latin); // ZGFua29nYWk
Base64.btoa(latin); // ZGFua29nYWk=
Base64.btoa(utf8); // raises exception
Base64.fromUint8Array(u8s); // ZGFua29nYWk=
Base64.fromUint8Array(u8s, true); // ZGFua29nYWk which is URI safe
Base64.encode(utf8); // 5bCP6aO85by+
Base64.encode(utf8, true) // 5bCP6aO85by-
Base64.encodeURI(utf8); // 5bCP6aO85by-
Base64.decode( 'ZGFua29nYWk=');// dankogai
Base64.decode( 'ZGFua29nYWk'); // dankogai
Base64.atob( 'ZGFua29nYWk=');// dankogai
Base64.atob( '5bCP6aO85by+');// 'å°é£¼å¼¾' which is nonsense
Base64.toUint8Array('ZGFua29nYWk=');// u8s above
Base64.decode( '5bCP6aO85by+');// 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode( '5bCP6aO85by-');// 小飼弾
Base64.isValid(0); // false: 0 is not string
Base64.isValid(''); // true: a valid Base64-encoded empty byte
Base64.isValid('ZA=='); // true: a valid Base64-encoded 'd'
Base64.isValid('Z A='); // true: whitespaces are okay
Base64.isValid('ZA'); // true: padding ='s can be omitted
Base64.isValid('Z'); // false: a single character can't encode a byte
Base64.isValid('++'); // true: can be non URL-safe
Base64.isValid('--'); // true: or URL-safe
Base64.isValid('+-'); // false: can't mix both
Base64 variants
The default encoding uses the standard Base64 alphabet from
RFC 4648, section 4.
The URL-safe form in js-base64 uses the base64url alphabet from
section 5 and omits padding.
Base64.decode() and Base64.toUint8Array() accept both alphabets, with or
without padding. Use decode() for UTF-8 text and toUint8Array() for bytes.
Encoded output has no line wrapping; MIME or PEM line wrapping is not added.
Built-in Extensions
By default Base64 leaves built-in prototypes untouched. But you can extend them as below.
// 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- an alias of .toBase64(true)
'小飼弾'.toBase64URL(); // 5bCP6aO85by- an alias of .toBase64URI()
'ZGFua29nYWk='.fromBase64(); // dankogai
'5bCP6aO85by+'.fromBase64(); // 小飼弾
'5bCP6aO85by-'.fromBase64(); // 小飼弾
'5bCP6aO85by-'.toUint8Array();// UTF-8 bytes of '小飼弾'
// you have to explicitly extend Uint8Array.prototype
Base64.extendUint8Array();
// once extended, you can do the following
u8s.toBase64(); // 'ZGFua29nYWk='
u8s.toBase64URI(); // 'ZGFua29nYWk'
u8s.toBase64URL(); // 'ZGFua29nYWk' an alias of .toBase64URI()
// extend all at once
Base64.extendBuiltins()
.decode() vs .atob (and .encode() vs btoa())
Suppose you have:
var pngBase64 =
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
Which is a Base64-encoded 1x1 transparent PNG, DO NOT USEBase64.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(). The same rule applies to the opposite direction.
Or even better, Base64.toUint8Array(pngBase64).
Brief History
Since version 3.3 it is written in TypeScript. Both base64.mjs and base64.js are compiled from base64.ts via Rollup.
Since version 3.7 base64.js is ES5-compatible again (hence IE11-compatible).
Since 3.0 js-base64 switch to ES2015 module so it is no longer compatible with legacy browsers like IE (see above)
dankogai/js-base64 có 4.4k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/dankogai/js-base64. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
dankogai/js-base64 có tag gì không?
Bản đồng bộ chưa ghi nhận topic GitHub nào cho dankogai/js-base64. GitHub topics hiển thị ở thanh bên phải trang repo — đó là nơi đáng kiểm tra nhất.
dankogai/js-base64 còn đang phát triển không?
Commit gần nhất trên dankogai/js-base64 là 11 ngày trước (theo timestamp GitHub). Repo có 1.3k fork — một chỉ báo về mức độ quan tâm của cộng đồng.
dankogai/js-base64 là gì?
dankogai/js-base64 (dankogai/js-base64) là dự án JavaScript trên GitHub. Theo mô tả gốc: Base64 implementation for JavaScript
dankogai/js-base64 viết bằng ngôn ngữ gì?
dankogai/js-base64 chủ yếu viết bằng JavaScript. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
Chưa chắc js-base64 có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về js-base64.