Charger un fichier
  1. base64hub
  2. Outils texte
  3. Base64 en XML

Base64 en XML : décoder des payloads XML

Collez du Base64 et lisez le XML qu’il contient. L’outil reconnaît les documents XML, les enregistre en .xml et gère l’UTF-8, l’UTF-16 et les anciens jeux de caractères.

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 XML

  1. Collez le Base64 dans Entrée · Base64. La page se charge avec un petit exemple.
  2. Le XML apparaît dans Sortie · texte. Ressemble à XML dans la ligne d’état confirme que le contenu commence comme un document XML.
  3. Si la sortie montre des espaces entre les lettres ou un avertissement de données binaires, le XML est en UTF-16 : réglez Jeu de caractères sur UTF-16LE, ou sur Détection automatique s’il commence par une marque d’ordre des octets.
  4. Copier la sortie copie le texte. Télécharger enregistre les octets d’origine sous decoded.xml.

L’exemple PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4= se décode en :

<?xml version="1.0"?>
<note><to>you</to><body>Hello</body></note>

L’opération inverse est XML en Base64.

Reconnaître du XML encodé

Comme le XML commence par <, son Base64 commence par P, et les caractères suivants en disent plus :

Le Base64 commence parDébut décodéDocument typique
PD94bWwg<?xmlTout fichier XML avec déclaration
PHNhbWxwOlJlc3BvbnNl<samlp:ResponseRéponse de connexion SAML (décodeur SAML)
PHNvYXA6RW52ZWxvcGU<soap:EnvelopeMessage SOAP
PEludm9pY2U<InvoiceFacture électronique UBL
//48AD8AeABtAGwABOM + <?xml en UTF-16LEXML enregistré en UTF-16

Une valeur censée être du SAML mais qui ne commence pas par P est en général du XML compressé ; la façon de le décompresser est expliquée plus bas.

UTF-16 et autres encodages

La plupart du XML est en UTF-8, ce que le décodeur suppose. Deux cas demandent un autre Jeu de caractères :

  • Documents UTF-16, fréquents avec les outils Windows et .NET : chaque caractère ASCII est accompagné d’un octet nul. Décodés en UTF-8, ils ressemblent à des données binaires, et l’outil le signale. Avec Détection automatique ou UTF-16LE, le texte complet apparaît, en commençant par <?xml version="1.0" encoding="UTF-16"?>. Télécharger conserve les octets mais nomme le fichier decoded.bin : renommez-le en .xml.
  • Documents Latin-1 ou Windows-1252 : ils déclarent encoding="ISO-8859-1" ou équivalent. Les lettres accentuées s’affichent en � en mode UTF-8 ; choisissez le jeu de caractères déclaré pour les lire.

La déclaration XML dans la sortie indique le jeu de caractères voulu par l’auteur. Un parseur XML qui lit le fichier téléchargé utilise cette déclaration : le fichier est donc correct même si l’aperçu à l’écran a demandé un choix manuel du jeu de caractères.

D’où vient le XML en Base64

SAML est la source la plus fréquente : les fournisseurs d’identité envoient le SAMLResponse à votre application sous forme de XML encodé en Base64, et le copier depuis l’onglet réseau du navigateur est la méthode habituelle pour déboguer une connexion. Les services SOAP et les plateformes de facturation électronique renvoient documents et pièces jointes dans des champs Base64. Un e-mail peut transporter des pièces jointes XML sous forme de parties MIME en Base64, que le décodeur d’e-mails extrait.

Pour les valeurs SAML SAMLRequest issues d’URL de redirection, le XML a été compressé en DEFLATE brut avant l’encodage : un simple décodage Base64 donne donc du binaire. Le décodeur Base64 gzip le décompresse. Les échappements %2B, %2F et %3D sont décodés automatiquement ; pour une valeur entièrement encodée en URL, passez d’abord par le décodeur d’URL.

Base64 en XML dans le code

Transmettez les octets décodés au parseur XML sans les convertir d’abord en chaîne : il lit ainsi lui-même l’encodage dans la déclaration :

import base64
import xml.etree.ElementTree as ET

s = "PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4="
root = ET.fromstring(base64.b64decode(s))
root.find("body").text   # 'Hello'
// Browser
const s = "PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxub3RlPjx0bz55b3U8L3RvPjxib2R5PkhlbGxvPC9ib2R5Pjwvbm90ZT4=";
const bytes = Uint8Array.from(atob(s), c => c.charCodeAt(0));
const doc = new DOMParser().parseFromString(new TextDecoder().decode(bytes), "application/xml");

Pour du XML UTF-16 ou Latin-1 dans le navigateur, passez le bon libellé à TextDecoder. Plus de détails dans Base64 en Python et Base64 en JavaScript.

FAQ

Comment décoder du Base64 en fichier XML ?

Collez le Base64 ci-dessus. Quand la ligne d’état indique XML, Télécharger enregistre les octets décodés sous decoded.xml, octet pour octet, avec l’encodage d’origine et une éventuelle signature intacts.

Comment savoir si du Base64 contient du XML ?

Les documents dotés d’une déclaration XML commencent par PD94bWwg (<?xml ). Sans déclaration, la chaîne commence quand même par P, car tout document commence par < ; PHNhbWxwOlJlc3BvbnNl correspond à <samlp:Response.

L'outil peut-il formater ou indenter le XML ?

Non. Le XML est affiché exactement tel que décodé ; l’option Formater le JSON ne s’applique qu’au JSON. Montrer les octets d’origine est important pour le XML signé, où toute reformatation modifie le contenu.

Pourquoi ma requête SAML décodée ressemble-t-elle à des octets aléatoires ?

Les requêtes SAML envoyées dans une URL de redirection sont compressées en DEFLATE brut avant l’encodage Base64. Décompressez-les avec le décodeur Base64 gzip ou ouvrez-les dans le décodeur SAML.