Encodeur & Décodeur Base64 (URL-Safe)

Encodeur & Décodeur Base64 (URL-Safe)

Encodez et décodez instantanément du texte ou des fichiers en Base64. Compatible base64url, UTF-8, retours MIME, Data URLs et correction d'erreurs en direct.

Sélectionner un scénario
Décomposition binaire 24 bits vers 4× 6 bits (RFC 4648)
Triade (3 octets / 24 bits) #1 / 7Conforme RFC
Octets binaires bruts (3 octets = 24 bits)A (0x41)01000001l (0x6C)01101100a (0x61)01100001010000 • 010110 • 110001 • 100001Sextets Base64 (6 bits)[010000]#16Q[010110]#22W[110001]#49x[100001]#33h
Données d'entrée
Export Data URL en 1 clic:
Taille d'entrée19 caractères
Taille de sortie28 octets
Expansion+47.4%
Mode actifEncoder
VarianteStandard
IntégritéValide
Référence technique et guide d'architecture

Encodeur & Décodeur Base64 (URL-Safe) — Guide de référence

Encodez et décodez instantanément vos chaînes Base64 ou fichiers binaires. Prise en charge complète du format URL-safe (base64url), d'Unicode UTF-8, des retours à la ligne MIME, des Data URLs et de la réparation d'erreurs en direct.

Encodeur & Décodeur Base64 (URL-Safe) — Guide de référence — Architecture en mémoire côté client et flux de données
Encodeur & Décodeur Base64 (URL-Safe) — Guide de référence — Architecture en mémoire côté client et flux de données

Paramètres clés et contrôles

Table de l'alphabet Base64Jeu de caractères

Table de correspondance à 64 caractères associée à des valeurs sur 6 bits allant de 0 à 63. La norme standard RFC 4648 utilise [A-Za-z0-9+/], tandis que la variante URL-safe remplace + et / par - et _.

Par défaut : Standard RFC 4648
Caractère de remplissage (=)Chaîne de caractères

Caractère de suffixe (padding) ajouté lorsque le flux binaire d'entrée n'est pas un multiple de 24 bits. Ajoute == pour 1 octet restant, ou = pour 2 octets restants. Omis en base64url.

Par défaut : Activé (=)
Limite de retour à la ligneEntier / Préréglage

Nombre de colonnes après lequel un saut de ligne CRLF ou LF est inséré. La norme MIME utilise 76 caractères par ligne, PEM utilise 64 caractères, et les API web modernes n'appliquent généralement aucune coupure.

Par défaut : Aucun (Continu)
Encodage des caractères du texteEnum

Standard de sérialisation des octets pour le texte brut. UTF-8 gère l'ensemble des caractères Unicode internationaux et les émojis. ISO-8859-1 (Latin-1) et ASCII sont restreints aux plages sur un seul octet.

Par défaut : UTF-8
Schéma Data URLFormat de chaîne

Format d'URI avec préfixe MIME (data:[<mediatype>][;base64],<data>) permettant d'intégrer directement images, polices, fichiers audio et documents au sein du code HTML et CSS.

Par défaut : Détection automatique

Conseils de pro et bonnes pratiques

Contourner l'exception Unicode de btoa() en JavaScript

La fonction native du navigateur window.btoa() lève une exception InvalidCharacterError dès qu'elle rencontre un caractère situé hors de la plage Latin-1 (point de code > 255). Pour encoder de manière fiable du texte UTF-8 moderne incluant des émojis ou des écritures internationales, convertissez la chaîne en un Uint8Array à l'aide de new TextEncoder().encode(str) avant de transformer le flux d'octets en Base64.

Éviter la corruption des paramètres d'URL avec Base64url

Le Base64 standard utilise les caractères plus (+) et barre oblique (/). Lorsqu'ils transitent dans les paramètres de requête HTTP (query string), les serveurs web interprètent fréquemment le caractère + comme une espace, corrompant ainsi les données. Privilégiez systématiquement la spécification URL-safe Base64url (RFC 4648 §5), qui remplace + par - et / par _, tout en supprimant le remplissage final avec le signe =.

Évaluer le surcoût de 33 % en bande passante des Data URIs

L'intégration de ressources sous forme de Data URLs élimine les allers-retours HTTP, mais le Base64 augmente la taille du fichier binaire d'exactement 33,33 % (4 caractères pour 3 octets) et empêche la mise en cache distincte par le navigateur. Réservez les Data URLs intégrées aux micro-icônes et aux SVG critiques de moins de 4 Ko ; conservez les fichiers multimédias plus volumineux en tant que ressources externes mises en cache via HTTP/2 ou HTTP/3.

Calculer automatiquement le padding d'un Base64 tronqué

Si une API ou un fichier de log tronque les signes égal terminaux, déterminez le remplissage nécessaire par calcul modulo : calculez reste = longueurChaine % 4. Si le reste vaut 2, ajoutez ==. Si le reste vaut 3, ajoutez =. Si le reste est égal à 1, la chaîne est corrompue, car 6 bits ne peuvent pas constituer un octet complet de 8 bits.

Pièges courants et dépannage

⚠️La chaîne à décoder n'est pas correctement encodée (Erreur DOMException / atob)

La chaîne d'entrée contient des caractères non conformes à l'alphabet Base64 (comme des espaces, des retours à la ligne ou des caractères encodés en URL tels que %2B). Activez l'option de nettoyage automatique pour supprimer les blancs et normaliser les tirets/soulignés, ou vérifiez si les données ont été générées au format URL-safe base64url.

⚠️Le texte décodé affiche des caractères corrompus ou illisibles (mojibake, ex. é, ü ou le caractère de remplacement )

Cette anomalie découle d'une discordance de jeu de caractères. Le texte initial a été sérialisé en octets multi-octets UTF-8, mais le décodeur les interprète en ISO-8859-1 (Latin-1), ou inversement. Basculez le sélecteur d'encodage de texte de Latin-1/ASCII vers UTF-8 pour rétablir la reconstruction correcte des caractères.

⚠️Erreur de longueur Base64 invalide : la longueur de la chaîne modulo 4 est égale à 1

Le Base64 regroupe les données par blocs de 6 bits par caractère ; une longueur dont le reste modulo 4 vaut 1 indique qu'il ne reste que 6 bits isolés, ce qui est insuffisant pour reconstituer ne serait-ce qu'un seul octet de 8 bits. Cela prouve que la chaîne a été tronquée lors de la transmission réseau ou d'un copier-coller. Récupérez la charge utile complète depuis la source.

Foire aux questions (FAQ)

Comment l'encodage Base64 génère-t-il une augmentation de taille de 33 % ?▼

L'encodage Base64 convertit chaque bloc de 3 octets (24 bits) de données binaires en 4 caractères ASCII (chacun représentant 6 bits). Comme chaque caractère produit est stocké sous forme d'un octet ASCII de 8 bits en mémoire et sur le réseau HTTP, 24 bits en entrée produisent 32 bits en sortie. Cela engendre un ratio mathématique constant de 4/3, soit une augmentation exacte de 33,33 % du volume de données avant l'ajout des sauts de ligne et du padding.

En quoi le format Base64url diffère-t-il du Base64 standard ?▼

Le Base64 standard (RFC 4648 §4) utilise les caractères + et / comme 62e et 63e symboles et emploie = pour le padding. Dans les paramètres d'URL et les noms de fichiers, le + est interprété comme une espace et le / sert de séparateur de chemin. La variante Base64url (RFC 4648 §5) remplace + par un tiret (-) et / par un tiret bas (_), tout en omettant généralement les caractères de remplissage = afin de garantir une transmission sécurisée dans les URLs sans encodage pourcent (%-encoding).

Pourquoi la fonction JavaScript btoa renvoie-t-elle une erreur InvalidCharacterError avec Unicode ?▼

La fonction native btoa() du navigateur a été conçue pour des chaînes binaires où le point de code de chaque caractère tient sur un seul octet de 8 bits (valeurs de 0 à 255). Les caractères Unicode actuels (émojis, lettres accentuées, alphabets asiatiques) requièrent de 2 à 4 octets en UTF-8. Transmettre un point de code supérieur à 255 enfreint la spécification de btoa(). Les applications modernes doivent d'abord sérialiser la chaîne en octets UTF-8 via TextEncoder avant d'effectuer la conversion en Base64.

Comment convertir une chaîne Base64 en image HTML Data URL directement affichable ?▼

Pour afficher une image Base64 en HTML ou CSS sans dépendance vers un fichier externe, préfixez la chaîne avec le type MIME adéquat et l'identifiant base64 : data:image/[format];base64,[données]. Par exemple, une image PNG prend la forme data:image/png;base64,iVBORw0KGgo... Vous pouvez insérer cette chaîne complète directement dans l'attribut src d'une balise HTML <img> ou dans la propriété CSS background-image: url(...).

Quand faut-il omettre le padding Base64 (=) dans les jetons web et les API ?▼

Le remplissage Base64 à base de signes égal (=) doit être omis lors de la génération de JSON Web Tokens (JWT), de jetons d'accès OAuth et de segments d'URL régis par les normes RFC 7515 (JWS) et RFC 4648 §5. Puisque la longueur de la chaîne est connue du parseur, les bits manquants se déduisent mathématiquement (longueur % 4), ce qui rend le padding superflu et optimise la compacité des URLs.

Outils et utilitaires connexes

Tous les outils →