Calculer avec des groupes de trois octets et le remplissage
Le Base64 standard de la RFC 4648 représente trois octets par quatre caractères. Un dernier groupe de un octet demande == ; deux octets, = ; trois octets, aucun remplissage. Avec remplissage et sans sauts ajoutés, la longueur est 4 * Math.ceil(n / 3), où n compte les octets d’entrée. Zéro octet donne zéro.
n = new TextEncoder().encode(input).length
length = 4 * Math.ceil(n / 3)
f 1 Zg== 4
fo 2 Zm8= 4
foo 3 Zm9v 4
foob 4 Zm9vYg== 8Ces exemples fixes ont été exécutés avec la fonction réelle. f, fo et foo produisent quatre caractères malgré des longueurs différentes ; leur remplissage diffère. foob contient quatre octets et produit huit caractères. Le remplissage indique le format du groupe final, pas des caractères ajoutés au texte original.
Distinguer caractères, octets et sauts de ligne
Moyoutil utilise TextEncoder pour convertir le texte en octets UTF-8. L’exemple 가 occupe trois octets et devient 6rCA, quatre caractères. f suivi d’un saut LF occupe deux octets et devient Zgo=. Les espaces et sauts de l’original font partie des données à l’encodage. Les en-têtes HTTP, enveloppes JSON et préfixes d’URL de données sont hors de la formule.
base64("가") // 6rCA
base64("f\n") // Zgo=Saisissez le texte original et choisissez Encoder. Pour décoder, saisissez seulement la sortie Base64 standard. Le décodage retire les espaces blancs de son entrée ; l’encodage conserve ceux de l’original. Base64URL avec - et _ et la restauration de fichiers binaires arbitraires ne sont pas pris en charge. /w== est lisible en Base64, mais provoque une erreur car les octets ne sont pas du texte UTF-8. Modifier l’entrée efface l’ancien résultat et désactive la copie ; convertissez à nouveau.
Questions fréquemment posées
Base64 augmente-t-il toujours la taille d’environ 33% ?
Pour de grandes entrées, le rapport approche 4/3, mais le remplissage pèse davantage sur les petites. Un octet devient quatre caractères. Comptez les octets et vérifiez le remplissage pour calculer la longueur exacte.
L’interface convertit-elle une entrée vide en zéro caractère ?
La formule donne zéro pour zéro octet, mais l’interface Moyoutil demande du contenu si l’entrée est vide. La limite mathématique et la politique de saisie diffèrent.