Charger un fichier
  1. base64hub
  2. Outils texte
  3. Décodeur Base64

Décodeur Base64 : décoder du Base64 en texte en ligne

Collez une chaîne Base64 et lisez aussitôt le texte décodé. Sauts de ligne, préfixes data:, caractères URL-safe et remplissage = manquant sont gérés pour vous, et les erreurs pointent le caractère exact.

Gratuit sans inscription, sans limites Local rien n'est envoyé Auto détecte PNG, PDF, ZIP, JSON et plus Mis à jour 27 oct. 2026
Entrée 0 BSortie 0 BTaille –

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment décoder du Base64

  1. Collez le Base64 dans la zone Entrée · Base64. Les sauts de ligne, les espaces, les guillemets autour et un préfixe data:...;base64, peuvent rester : le décodeur les retire.
  2. Le texte décodé apparaît dans Sortie · texte. Une ligne d’état affiche Base64 valide, la variante (Standard ou Base64URL), le nombre d’octets décodés et, sous Ressemble à, le type de contenu détecté.
  3. Si le texte est illisible, changez Jeu de caractères, ou choisissez Détection automatique.
  4. Si le contenu est du JSON, Formater le JSON l’indente pour la lecture.
  5. Appuyez sur Copier la sortie, ou sur Télécharger pour enregistrer les octets décodés dans un fichier. L’extension suit le type détecté : du JSON est enregistré sous decoded.json et un PNG sous decoded.png.

Inverser renvoie le texte décodé dans l’entrée et passe en mode encodage, ce qui permet de vérifier rapidement que la chaîne fait l’aller-retour.

Ce que le décodeur accepte

Le Base64 arrive rarement propre. Il est coupé à 76 caractères dans un e-mail, entre guillemets dans un fichier JSON, encodé en pourcent dans une URL ou privé de son remplissage dans un jeton. Le décodeur accepte tous ces cas sans aucun réglage :

Vous collezVous obtenezCe qui s’est passé
SGVsbG8gV29ybGQHello World= manquant restauré, la ligne d’état le signale
8J-Riw👋- et _ URL-safe reconnus, variante affichée en Base64URL
data:text/plain;base64,SGk=HiPréfixe de data URI retiré
"SGVsbG8="HelloGuillemets issus du code ou du JSON retirés
SGVsbG8%3DHello%3D encodé en URL lu comme =
SGVs (saut de ligne) bG8=HelloSauts de ligne et espaces ignorés

Le décodeur est tolérant sur cet emballage et strict sur tout le reste : un caractère hors de l’alphabet l’arrête, avec une erreur qui nomme le caractère et sa position. Certaines bibliothèques, elles, ignorent silencieusement les mauvais caractères et vous rendent une sortie corrompue (voir la section sur le code plus bas).

Pour les jetons URL-safe en particulier, le décodeur Base64URL explique l’alphabet et Base64 ou Base64URL les différences.

Quand le Base64 décodé est un fichier

Le Base64 transporte n’importe quels octets, et beaucoup de chaînes Base64 sont des images ou des documents. L’outil compare les premiers octets des données décodées aux signatures de fichiers connues (magic numbers) et affiche le résultat dans Ressemble à : PNG, JPEG, PDF, ZIP, gzip, JSON, XML et bien d’autres. Pour les formats binaires, il affiche un aperçu des caractères imprimables, indique que les données sont binaires et renvoie vers le bon outil, comme Base64 en image ou Base64 en PDF. Télécharger enregistre les octets d’origine dans tous les cas.

Le début d’une chaîne Base64 trahit souvent le format avant même le décodage :

Le Base64 commence parOctets décodésFormat
iVBORw0KGgo89 50 4E 47 0D 0A 1A 0AImage PNG
/9j/FF D8 FFImage JPEG
JVBERi0%PDF-Document PDF
UEsDBAPK 03 04ZIP, mais aussi DOCX et XLSX
H4sI1F 8B 08Données gzip (décodeur Base64 gzip)
eyJ{"JSON, souvent un segment de JWT
PD94bWwg<?xmlXML

D’autres signatures sont listées dans préfixes Base64 courants. Pour un fichier de type inconnu, Base64 en fichier détecte le format et le prévisualise.

Jeux de caractères : réparer un texte illisible

Le Base64 stocke des octets et ne dit rien du jeu de caractères qui a transformé les caractères en octets. Le décodeur suppose de l’UTF-8, ce qui est juste pour la plupart des données modernes. Quand c’est faux, les symptômes sont reconnaissables :

  • Des caractères � et la note « Certains octets ne sont pas de l’UTF-8 valide ». Le texte vient d’un ancien jeu de caractères. Y2Fm6Q== se lit caf� en UTF-8 et café en ISO-8859-1 ou Windows-1252. Un texte russe comme z/Do4uXy a besoin de Windows-1251 pour afficher Привет.
  • Un point ou un vide après chaque lettre. C’est de l’UTF-16, où les lettres ASCII sont suivies d’un octet nul. SABlAGwAbABvAA== donne Hello en UTF-16LE (Base64 en UTF-16).
  • é, ü ou ’ dans la sortie. Le décodage est correct ; le texte a été encodé deux fois avant d’être converti en Base64 : une étape antérieure a lu de l’UTF-8 comme du Latin-1 et a de nouveau enregistré le résultat en UTF-8. Y2Fmw4PCqQ== se décode exactement en café. Corrigez-le à la source.

Détection automatique cherche d’abord une marque d’ordre des octets, puis vérifie si les octets sont de l’UTF-8 valide, puis cherche le motif d’octets nuls de l’UTF-16. Les pages de code à un octet comme Windows-1251 et KOI8-R se ressemblent pour tout détecteur : choisissez-les à la main quand vous connaissez la source.

Messages d’erreur et leur signification

MessageCause habituelleSolution
Caractère “.” non valide à la position 21Un JWT entier collé : les points séparent trois segmentsDécodez un seul segment, ou utilisez le décodeur JWT
Caractère "\\" non valide à la position 8Base64 copié depuis du JSON où / était échappé en \/Remplacez \/ par /
L’entrée mélange des caractères standard (+ /) et URL-safe (- _)Deux chaînes accolées, ou une conversion à moitié faiteConvertissez vers un seul alphabet avec Base64URL en Base64
Le remplissage (=) ne peut apparaître qu’à la toute finDeux valeurs Base64 collées ensemble, comme SGk=SGk=Séparez-les et décodez chacune
Longueur incorrecte : un caractère de trop ou de moinsLa copie a perdu ou gagné un caractèreRecopiez, ou essayez Réparer du Base64

Le guide des erreurs Base64 détaille chaque cas. Pour trouver le caractère ou le problème de remplissage exact d’une chaîne, utilisez le validateur Base64.

Décoder du Base64 en JavaScript, en Python et en ligne de commande

atob() renvoie une « chaîne binaire » avec un caractère par octet : un texte UTF-8 demande donc une étape TextDecoder. atob accepte le remplissage manquant, mais lève InvalidCharacterError sur les - et _ URL-safe.

const s = "R3LDvMOfZSDwn5GL";
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)));
// "Grüße 👋"

// Node.js accepts both alphabets
Buffer.from(s, "base64").toString("utf8");          // "Grüße 👋"
Buffer.from("8J-Riw", "base64url").toString("utf8"); // "👋"

Python lève binascii.Error: Incorrect padding sur une entrée sans remplissage : ajoutez-le donc vous-même.

import base64

s = "SGVsbG8"
base64.b64decode(s + "=" * (-len(s) % 4)).decode("utf-8")
# 'Hello'
base64.b64decode("SGVs*bG8=", validate=True)
# binascii.Error: Only base64 data is allowed

Sans validate=True, Python ignore le * et renvoie b'Hello'. Buffer.from de Node se comporte de la même façon : une chaîne abîmée peut donc se décoder sans la moindre erreur.

En ligne de commande :

printf '%s' 'R3LDvMOfZSDwn5GL' | base64 -d
base64 -d message.b64 > message.bin

La première ligne affiche Grüße 👋. Sur les anciennes versions de macOS, l’option s’écrit -D. Plus de détails par langage : JavaScript, Node.js, Python, PHP.

FAQ

Comment décoder une chaîne Base64 ?

Collez-la dans la zone de saisie ci-dessus ; le texte décodé apparaît immédiatement. Dans le code, décodez le Base64 en octets puis lisez les octets en UTF-8 : base64.b64decode(s).decode() en Python, Buffer.from(s, "base64").toString() en Node.js.

Pourquoi mon texte décodé affiche-t-il des caractères bizarres comme � ou é ?

� signifie que les octets ne sont pas de l’UTF-8 valide : le texte a probablement été encodé dans un autre jeu de caractères ; essayez Windows-1252, Windows-1251 ou UTF-16LE dans le menu Jeu de caractères. é à la place de é signifie que le texte était déjà corrompu avant d’être encodé.

Peut-on décoder du Base64 sans le remplissage = ?

Oui. Le décodeur ajoute lui-même les = manquants et le signale dans la ligne d’état. Le remplissage ne fait que compléter le dernier bloc : il peut donc toujours être restauré à partir de la longueur.

La sortie décodée est du charabia. Le Base64 est-il cassé ?

Le plus souvent, les données sont un fichier. Regardez le champ « Ressemble à » de la ligne d’état : pour les images, PDF, archives et autres formats binaires, l’outil renvoie vers un décodeur qui prévisualise ou enregistre le fichier.

Peut-on décoder du Base64 sans clé ?

Toujours. Le Base64 est un encodage à l’alphabet public : il n’offre aucune confidentialité. Si le résultat décodé paraît toujours aléatoire, les données ont été chiffrées ou compressées avant l’encodage.