Base64 em JavaScript: btoa() e atob()

Entenda como usar as funções nativas `btoa` e `atob` no navegador e `Buffer` no Node.js.

Introdução

No JavaScript moderno, temos diferenças entre Browser e Node.js para manipulação de Base64.

O Algoritmo

No browser, usamos `btoa` (binary to ASCII) e `atob` (ASCII to binary). No backend, usamos Buffers.

Implementação em Javascript

base64-encoder.jsjavascript
// --- No Navegador ---
const text = "Olá Mundo";
const encoded = btoa(unescape(encodeURIComponent(text))); // Suporte a UTF-8
console.log(encoded);

const decoded = decodeURIComponent(escape(atob(encoded)));
console.log(decoded);

// --- No Node.js ---
const buffer = Buffer.from("Olá Mundo", "utf-8");
const base64Node = buffer.toString("base64");
console.log(base64Node);

const fromBase64 = Buffer.from(base64Node, "base64").toString("utf-8");
console.log(fromBase64);

Aviso: `btoa` direto falha com caracteres UTF-8 (acentos). O truque `encodeURIComponent` resolve isso no navegador.

Não quer escrever código?

Use nossa ferramenta online gratuita para processar BASE64-ENCODER instantaneamente. Perfeito para testes rápidos.

Usar Ferramenta de BASE64-ENCODER Online