Uint8Array Base64 / Hex
JavaScript 🟡 MidDé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
Sources
Fiche mise à jour le 2026-09-27