Uint8Array.prototype.toBase64 / fromBase64 în JavaScript

Date binare (ArrayBuffer, typed arrays) ES2026 (Node.js 25+, browserele din 2025)

Transformă octeți în text Base64 și înapoi, direct, fără btoa și atob.

Sintaxă
octeti.toBase64(optiuni)
Uint8Array.fromBase64(text, optiuni)
octeti.setFromBase64(text, optiuni)

Ce face Uint8Array.prototype.toBase64 / fromBase64

toBase64 codifică octeții unui Uint8Array ca text Base64. Uint8Array.fromBase64 face operația inversă și creează un tablou nou, iar setFromBase64 scrie octeții decodați într-un tablou existent și returnează { read, written }.

Spre deosebire de btoa și atob, lucrează direct cu octeți, deci merge cu orice date binare și cu texte UTF-8 cu diacritice (codificate întâi cu TextEncoder). Opțiunea { alphabet: "base64url" } produce varianta sigură pentru adrese URL (- și _), iar omitPadding: true scoate semnele = de la final.

Parametri

Parametru Descriere
optiuni Opțional. alphabet ("base64" sau "base64url"), omitPadding la codificare, lastChunkHandling la decodificare.
text Textul Base64 de decodat.

Ce returnează

toBase64: text. fromBase64: un Uint8Array nou. setFromBase64: { read, written }.

Exemple

Exemplul 1: Text cu diacritice în Base64 și înapoi

const octeti = new TextEncoder().encode("Brașov");
const b64 = octeti.toBase64();

console.log(b64);
console.log(new TextDecoder().decode(Uint8Array.fromBase64(b64)));

Rezultat

QnJhyJlvdg==
Brașov

Exemplul 2: Varianta pentru URL și scrierea într-un tablou existent

const date = new Uint8Array([251, 255, 191]);

console.log(date.toBase64(), date.toBase64({ alphabet: "base64url" }));

const tinta = new Uint8Array(5);
console.log(tinta.setFromBase64("AQID"), tinta);

Rezultat

+/+/ -_-_
{ read: 4, written: 3 } Uint8Array(5) [ 1, 2, 3, 0, 0 ]

Greșeli frecvente

  • Decodezi un text Base64URL fără opțiunea alphabet: "base64url" și primești SyntaxError din cauza caracterelor - și _.

Comenzi înrudite