Charger un fichier
  1. base64hub
  2. Outils texte
  3. Base64 en UTF-8

Base64 en UTF-8 : décoder du Base64 en texte Unicode

Collez du Base64 et lisez-le comme du texte UTF-8. Si les octets ne sont pas de l’UTF-8 valide, l’outil marque les endroits fautifs avec � et vous prévient : un mauvais jeu de caractères ou une chaîne tronquée saute aux yeux.

Gratuit sans inscription, sans limites Local rien n'est envoyé 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 en UTF-8

  1. Collez le Base64 dans Entrée · Base64. Jeu de caractères est préréglé sur UTF-8.
  2. Lisez le résultat dans Sortie · texte. La ligne d’état affiche le nombre d’octets et le type de contenu détecté.
  3. Si la ligne d’état indique « Certains octets ne sont pas de l’UTF-8 valide », le texte est dans un autre jeu de caractères. Essayez Détection automatique, Windows-1252 ou UTF-16LE.
  4. Copier la sortie copie le texte ; Télécharger enregistre les octets décodés sans modification.

Pour encoder dans l’autre sens, utilisez UTF-8 en Base64.

Exemples

Base64Décodé en UTF-8Ce que cela montre
8J+YgA==😀Un emoji, 4 octets
4oKs€3 octets, aucun remplissage nécessaire
bmHDr3ZlIGNhZsOpnaïve caféLettres accentuées, 2 octets chacune
77u/SGk=Hi5 octets : une marque d’ordre des octets, puis Hi
Y2Fm6Q==caf�E9 est le é de Latin-1, invalide en UTF-8
8J+Y�Un emoji coupé après 3 de ses 4 octets
Y2Fmw4PCqQ==caféDe l’UTF-8 valide d’un texte déjà corrompu

Les trois dernières lignes correspondent aux problèmes traités plus bas : un mauvais jeu de caractères, une chaîne coupée et un texte déjà abîmé avant l’encodage.

UTF-8 invalide et caractère de remplacement

L’UTF-8 suit des règles strictes : un octet supérieur à 7F doit faire partie d’une séquence de 2, 3 ou 4 octets au motif fixe. Les octets qui enfreignent ce motif ne peuvent pas être lus comme de l’UTF-8. Le décodeur remplace chaque séquence cassée par U+FFFD (�) et ajoute la note « Certains octets ne sont pas de l’UTF-8 valide. Essayez un autre jeu de caractères. ». Rien n’est supprimé en silence : chaque � marque l’endroit exact d’un problème.

Deux causes couvrent presque tous les cas :

  • Un autre jeu de caractères. Y2Fm6Q== contient 63 61 66 E9, soit café en ISO-8859-1 et en Windows-1252. Changez Jeu de caractères et le texte apparaît. La page du décodeur Base64 liste les symptômes courants pour chaque jeu de caractères.
  • Une chaîne tronquée. Si le Base64 a été coupé, par exemple par une limite de colonne en base de données ou une ligne de journal, le dernier caractère peut perdre une partie de ses octets. 8J+YgA== est un emoji complet ; 8J+Y est le même emoji privé de son dernier octet, qui se décode en un seul �. Cherchez la valeur complète à la source.

Texte encodé deux fois (é et ’)

Quand la sortie affiche é pour é, ü pour ü ou ’ pour une apostrophe typographique, le décodeur n’y est pour rien. Plus tôt dans la chaîne de traitement, des octets UTF-8 ont été lus en Windows-1252 puis réenregistrés en UTF-8, ce qui transforme chaque caractère spécial en deux ou trois caractères erronés. Le Base64 conserve fidèlement ce texte abîmé : Y2Fmw4PCqQ== est l’UTF-8 valide de la chaîne de sept octets café.

On peut souvent réparer une telle chaîne dans le code en inversant l’erreur : encodez le texte en Windows-1252 et décodez les octets en UTF-8. La vraie correction se fait dans le système qui l’a écrit.

Marques d’ordre des octets

Certains éditeurs, surtout sous Windows, commencent les fichiers UTF-8 par les octets EF BB BF, une marque d’ordre des octets (BOM). En Base64, le fichier commence alors par 77u/. Le décodeur reconnaît la marque et l’exclut du texte, tandis que Télécharger conserve les octets exactement tels qu’ils étaient. Dans le code, vous devrez peut-être la retirer vous-même :

import base64

raw = base64.b64decode("77u/SGk=")
raw.decode("utf-8")       # '\ufeffHi'
raw.decode("utf-8-sig")   # 'Hi'

base64.b64decode("Y2Fm6Q==").decode("utf-8", errors="replace")   # 'caf�'

Sans errors="replace", Python lève UnicodeDecodeError sur les octets invalides. En JavaScript, new TextDecoder("utf-8", { fatal: true }) lève une TypeError au lieu d’insérer �, et le décodeur par défaut retire le BOM comme cet outil. Plus de détails dans Base64 en Python et Base64 en JavaScript.

FAQ

Comment décoder du Base64 en chaîne UTF-8 ?

Décodez le Base64 en octets, puis interprétez ces octets en UTF-8. Ci-dessus, tout se fait en une étape. En Python, c’est base64.b64decode(s).decode("utf-8") ; dans un navigateur, new TextDecoder().decode(bytes).

Que signifie le caractère � dans la sortie ?

C’est U+FFFD, le caractère de remplacement. Le décodeur l’insère partout où les octets ne forment pas de l’UTF-8 valide, ce qui signifie en général que le texte a été encodé dans un autre jeu de caractères ou que le Base64 a été tronqué.

Pourquoi mon texte décodé commence-t-il par un caractère invisible ?

La source avait probablement une marque d’ordre des octets UTF-8 (Base64 commençant par 77u/). Cet outil la supprime, mais le simple .decode("utf-8") de Python la conserve sous la forme \ufeff ; utilisez "utf-8-sig" pour la retirer.

UTF-8 est-il le bon choix pour mon Base64 ?

Très probablement. JSON, le web, Linux et les API modernes utilisent tous l’UTF-8. Les données issues d’anciens programmes Windows ou de chaînes .NET et PowerShell peuvent être en Windows-125x ou en UTF-16.