Base64 encoding and decoding for both browser and node, with binary file support.
If you've ever done base64
coding on the frontend side, I think you've noticed that atob
and btoa
methods are a
problem with utf-8
strings. This package solves the problem, plus, on the backend side, you can use the same package
and syntax with binary
files as well.
This package supports CommonJS
, ES Modules
, and IIFE
(Immediately Invoked Function Expression) formats. You can
safely use both require
and import
statements in any environment. TypeScript
also supported.
To get started with base64-transcode
, you can install it using yarn
or npm
or load script in the browser:
yarn add base64-transcode
npm i base64-transcode
<script src="https://unpkg.com/base64-transcode/dist/browser.js"></script>
const Base64 = require('base64-transcode');
// Decoding
const decodedData = Base64.decode('SGVsbG8gV29ybGQh');
console.log(decodedData); // "Hello World!"
// Encoding
const encodedData = Base64.encode('Hello World!');
console.log(encodedData); // "SGVsbG8gV29ybGQh"
import Base64 from 'base64-transcode';
// Decoding
const decodedData = Base64.decode('SGVsbG8gV29ybGQh');
console.log(decodedData); // "Hello World!"
// Encoding
const encodedData = Base64.encode('Hello World!');
console.log(encodedData); // "SGVsbG8gV29ybGQh"
<script src="https://unpkg.com/base64-transcode/dist/browser.js"></script>
<script>
// Decoding
const decodedData = Base64.decode('SGVsbG8gV29ybGQh');
console.log(decodedData); // "Hello World!"
// Encoding
const encodedData = Base64.encode('Hello World!');
console.log(encodedData); // "SGVsbG8gV29ybGQh"
</script>
-
decode(base64: string, toBuffer?: boolean): string | Uint8Array | Buffer
Decodes the base64 code. If the
toBuffer
option istrue
, it returns aUint8Array
in browser andBuffer
in node.js, otherwise a string. -
encode(input: string | Uint8Array | Buffer): string
Encodes the given string into base64 code.
To learn about the guidelines, please read the Code of Conduct, Contributing and Security Policy documents.
MIT License @ 2023 Zsolt Tövis
If you found this project interesting, please consider supporting my open source work by sponsoring me on GitHub / sponsoring me on PayPal / give the repo a star.