Uint8Array Base64 / Hex

JavaScript 🟡 Mid

Définition

Proposition Stage 4 (listée par TC39 pour ES2026) qui ajoute Uint8Array.fromBase64, toBase64, fromHex, toHex et setFromBase64 : conversion directe entre octets et texte, sans passer par btoa/atob et leurs chaînés binaires. Options : alphabet 'base64' ou 'base64url', omitPadding. Disponible dans les navigateurs majeurs depuis septembre 2025 (Baseline 2025).

Analogie

Un adaptateur de prise universel : les octets voyagent en texte sans bricolage.

Exemple de code

const octets = new Uint8Array([29, 233, 101, 161]);
octets.toBase64();                        // 'HelloQ=='
octets.toBase64({ alphabet: 'base64url', omitPadding: true }); // 'HelloQ'
octets.toHex();                           // '1de965a1'
Uint8Array.fromBase64('HelloQ==');        // Uint8Array(4)
// Avant : btoa(String.fromCharCode(...octets)) — fragile et lent

Cas d'usage

Jetons dans une URL, clés WebCrypto, transport binaire en JSON, empreintes hexadécimales.

Anti-pattern

Encoder du texte UTF-8 avec btoa directement : il ne gère que les caractères Latin-1 ; passer par TextEncoder puis toBase64.

Termes liés

#core#ES2026#binaire

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre