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știSyntaxErrordin cauza caracterelor-și_.
Comenzi înrudite
btoa / atob (Base64): Codifică un text în Base64 (btoa) și îl decodifică (atob); atenție la diacritice.Uint8Array.prototype.toHex / fromHex: Transformă octeți în text hexazecimal și înapoi.TextEncoder / TextDecoder: Transformă textul în octeți UTF-8 (encode) și octeții înapoi în text (decode).