Jeux de caractères UTF-8
Base64 encode des octets, pas des caractères. UTF-8 convertit d’abord les caractères en un ou plusieurs octets ; les caractères chinois et emoji en utilisent plusieurs. Un décalage produit du mojibake ou des erreurs.
Choisir un charset explicite
Documentez UTF-8 à chaque frontière navigateur, API et base de données. Décodez Base64 en octets d’abord, puis ces octets en UTF-8.
Détecter un décalage
Si ASCII fonctionne mais pas les accents, inspectez le charset déclaré, la conversion des retours à la ligne et le choix Base64 standard ou Base64URL. Comparez les longueurs en octets.
Vérification pratique
Encodez café / 世界 / 🚀 avec l’encodeur de texte, puis décodez et comparez les caractères d’origine.