100 % local — vos données ne quittent jamais votre navigateur

Déséchappement XML — lisez un extrait échappé

Décodez les cinq entités XML et les références numériques en texte, en une seule passe : vous lisez ce que le document transportait vraiment.

Instantané Privé Zéro cookie

Entrée XML Escaped

Sortie Text

Ce que fait cet outil

Il décode les cinq entités prédéfinies par XML — &, <, >, " et ' — ainsi que les références de caractères numériques dans les deux formes : décimale A et hexadécimale A, y compris au-delà de U+FFFF, si bien que 😀 redonne son emoji.

Les noms d’entités sont sensibles à la casse, comme l’exige XML : & est décodé, & ne l’est pas. Une référence a aussi besoin de son point-virgule — &amp sans lui est du texte ordinaire et reste tel quel.

Une seule passe, délibérément

Le décodage s’effectue exactement une fois. &amp;lt; donne &lt; et non <, parce que &amp;lt; est la forme échappée du texte littéral &lt; et que ce texte est la bonne réponse.

Décoder une seconde fois, c’est retransformer du balisage échappé en balisage actif — l’étape à l’origine de toute une classe de failles d’injection. Si votre valeur est réellement encodée deux fois, recollez le résultat et décodez à nouveau : une décision que vous prenez, plutôt qu’une que l’outil prend à votre place.

Ce qu’il ne fait pas

Les entités nommées de HTML sont hors périmètre. &nbsp;, &copy; et les quelques milliers d’autres appartiennent à HTML, pas à XML, et ressortent intactes.

Les références numériques invalides sont préservées verbatim plutôt que remplacées. Un point de code de substitution (&#xD800;) ou une valeur au-delà de U+10FFFF (&#99999999;) ne peut correspondre à aucun caractère, et rendre la référence inchangée garde l’entrée récupérable au lieu de la perdre silencieusement. Il en va de même pour tout caractère que XML 1.0 ne peut absolument pas représenter — NUL, la plupart des caractères de contrôle, les non-caractères U+FFFE et U+FFFF : &#0; et &#xFFFF; ressortent tels qu’écrits. Les décoder vous rendrait un document qu’aucun analyseur XML n’accepte.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi `&nbsp;` est-il laissé tel quel ?
Parce que ce n’est pas une entité XML. XML en prédéfinit exactement cinq — `&amp;`, `&lt;`, `&gt;`, `&quot;` et `&apos;` — tout le reste appartient à HTML. Utilisez l’outil dédié aux entités HTML pour celles-là.
Pourquoi `&amp;lt;` donne-t-il `&lt;` et non `<` ?
Parce que le décodage s’effectue une seule fois, volontairement. `&amp;lt;` est la forme échappée du texte `&lt;` : une passe est donc la bonne réponse. Décoder deux fois, c’est transformer du balisage échappé en balisage actif.
Que devient une référence numérique invalide ?
Elle ressort exactement telle qu’écrite. Un point de code de substitution comme `&#xD800;` ou une valeur hors plage comme `&#99999999;` ne correspond à aucun caractère : la référence est préservée plutôt que remplacée par un caractère de remplacement.

Convertisseurs associés