Décodeur d'entités HTML gratuit — Décoder le HTML
Décodez les entités HTML et déséchappez le HTML en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Reconvertit les références nommées, décimales & hex en caractères ; jamais envoyé.
Votre texte est décodé localement dans votre navigateur et n'est jamais envoyé, journalisé ni stocké. Il reste sur cet appareil.
Options · Options de décodage
Qu'est-ce que le décodage d'entités HTML ?
Le décodage d'entités HTML — aussi appelé déséchappement HTML — est le processus consistant à reconvertir les références de caractères en les caractères qu'elles représentent. Là où l'encodage remplace un < littéral par l'entité < pour qu'un navigateur l'affiche comme du texte, le décodage fait l'inverse : il parcourt une chaîne à la recherche de références comme <, &, <, > ou © et substitue le caractère réel (<, &, <, >, ©) à chacune. C'est l'opération que vous exécutez quand vous avez du balisage stocké ou transmis sous sa forme échappée et que vous avez besoin du texte réel — pour le lire, le modifier, le confier à un autre programme, ou comprendre pourquoi une page affiche < au lieu de <.
Il est utile d'être précis sur ce que fait cet outil. Il décode des entités en caractères ; il ne reformate ni ne valide le balisage. Si vous voulez prendre une chaîne échappée et récupérer ses caractères littéraux, c'est le bon outil. Pour aller dans l'autre sens et transformer des caractères en entités, utilisez l'encodeur d'entités HTML ; et pour indenter et nettoyer un bloc de HTML, utilisez le formateur HTML. L'encodage et le décodage sont des inverses exacts, si bien qu'une chaîne envoyée dans l'encodeur puis retraversant le décodeur revient inchangée.
Il y a trois sortes de référence que le décodeur doit comprendre, et il les gère toutes. Une référence nommée utilise un libellé défini (< pour <, © pour ©, — pour —) ; une référence numérique décimale écrit le point de code Unicode en base 10 (< pour <) ; et une référence numérique hexadécimale écrit le même point de code en base 16 (< pour <), correspondant à la notation U+XXXX du standard Unicode. Un décodeur robuste accepte n'importe laquelle, dans n'importe quel mélange, parce que différents encodeurs émettent différentes formes. Le tableau ci-dessous montre les références que vous rencontrerez le plus souvent et le caractère vers lequel chacune se décode :
| Entity (named) | Decimal | Hex | Decodes to | |----------------|---------|-----|------------| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | |   |   | (no-break space) | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | 😀 | 😀 | 😀 | 😀 |
Deux comportements distinguent un décodeur complet. Premièrement, il reconstruit les caractères du plan astral — tout ce qui dépasse U+FFFF, y compris la plupart des émojis — à partir de leurs références numériques plutôt que de produire un demi-caractère cassé ; 😀 devient correctement 😀. Deuxièmement, il suit l'analyse tolérante du navigateur pour le petit ensemble d'entités nommées héritées qui apparaissaient historiquement sans point-virgule final, si bien que © 2026 se décode toujours en © 2026 même si le XML strict le rejetterait. Cet outil fait les deux, conformément au comportement de la bibliothèque he largement utilisée, pour que sa sortie corresponde à ce qu'un vrai navigateur afficherait.
Une mise en garde qui accompagne tout décodeur : le texte décodé est déséchappé par définition. Le décodage est l'inverse de l'échappement qui protège les pages contre l'injection de script, de sorte qu'une chaîne décodée contenant une balise <script> ou un gestionnaire d'événement est de nouveau du balisage actif et dangereux. Ne décodez jamais une entrée non fiable pour l'insérer ensuite dans une page avec innerHTML — cela rouvre la faille exacte que l'échappement était censé fermer. Décodez quand vous avez besoin des caractères bruts pour lire, modifier ou stocker ; si le résultat est rendu de nouveau en HTML, rééchappez-le d'abord dans son contexte de destination. Et comme chaque octet est traité dans votre navigateur, les chaînes échappées que vous décodez — même une fiche privée ou un brouillon non publié — ne traversent jamais le réseau. Pour des conversions voisines, l'encodeur / décodeur d'URL gère l'encodage en pourcent et l'encodage / décodage Base64 gère le transport binaire sûr.
// Decoding is the inverse of escaping. The classic round-trip:
// < → < > → > & → & " → " ' → '
// Browser — the safest decoder is the platform itself. Use textarea, NOT innerHTML on a live node,
// so the decoded markup is never executed.
function decodeHtml(str) {
const ta = document.createElement('textarea');
ta.innerHTML = str; // the parser resolves entities into text
return ta.value; // .value is plain text — no script runs
}
decodeHtml('<div> & ©'); // → '<div> & ©'
decodeHtml('<>'); // → '<>'
decodeHtml('😀'); // → '😀'
decodeHtml('© 2026'); // → '© 2026' (lenient, no semicolon)
// ---------------------------------------------------------------
// SECURITY: decoded text is unescaped. Never do this with untrusted input:
// el.innerHTML = decodeHtml(userInput); // ❌ reopens the XSS hole
// If the decoded value must be displayed, re-escape it in its destination context first,
// or assign it as text:
// el.textContent = decodeHtml(userInput); // ✅ shown as literal text
// ---------------------------------------------------------------
// Node.js (no DOM) — use a tested library such as he:
// import { decode } from 'he';
// decode('<div> & ©'); // → '<div> & ©' Fonctionnalités clés
Décode les références nommées, décimales et hex
Résout l'ensemble complet des entités nommées HTML5 (<, ©, —), les références numériques décimales (<) et les références hexadécimales (<) dans n'importe quelle combinaison, exactement comme le ferait un navigateur — il inverse donc ce qu'un encodeur a produit.
Gère les émojis et les caractères du plan astral
Les références numériques au-dessus de U+FFFF sont reconstruites en leur point de code complet, si bien que 😀 se décode en 😀 plutôt qu'en substitut cassé. Les rares idéogrammes CJK et les symboles mathématiques se décodent fidèlement aussi.
Analyse tolérante des entités héritées
Suit les règles rétrocompatibles du navigateur pour les entités nommées sans point-virgule final, de sorte qu'un balisage hérité ou négligé comme © 2026 se décode toujours en © 2026 là où un analyseur strict le laisserait cassé.
Décodage instantané en direct
La sortie se met à jour au fur et à mesure de la frappe — pas de bouton d'envoi, pas de latence d'aller-retour. Collez un grand bloc échappé et le texte récupéré apparaît immédiatement, prêt à copier.
Référence rapide d'entités intégrée
Un tableau de référence associant les entités les plus courantes — les cinq réservées plus ©, ®, ™, €, —, et d'autres — à leurs caractères figure directement sur la page, vous n'avez donc jamais à chercher une entité ailleurs.
Bascule en un clic vers l'encodeur
Inverser le sens passe directement à l'encodeur d'entités HTML pour inverser l'opération. Encoder et décoder sont des inverses exacts, vous pouvez donc faire un aller-retour du texte sans perte.
100 % privé, dans le navigateur uniquement
Tout le décodage se fait sur votre appareil en JavaScript — aucune requête réseau, aucune journalisation, aucun stockage, vérifiable dans les DevTools → Réseau. Les fragments de base de données privés, le contenu d'e-mail et les brouillons non publiés ne quittent jamais l'onglet.
Disponible en 15 langues
L'interface complète — libellés, instructions et conseils — est localisée en 15 langues, de sorte que l'outil et ses conseils de sécurité sont clairs où que travaille votre équipe.
Exemples détaillés
Décoder un mélange d'entités nommées
<div> & ©
<div> & ©
Le décodeur résout chaque référence nommée vers le caractère qu'elle représente : < devient <, > devient >, & devient &, et © devient le signe de copyright ©. C'est le cas quotidien — prendre une chaîne stockée ou transmise sous sa forme échappée et la reconvertir en caractères réels pour pouvoir lire, modifier ou retraiter le balisage. Le décodage est l'inverse exact de l'encodage, si bien qu'une chaîne passée dans l'encodeur puis le décodeur revient inchangée.
Décoder des références numériques décimales et hexadécimales
<>
<>
Les références numériques de caractères fonctionnent dans les deux bases : < est la forme décimale du point de code 60, soit <, et > est la forme hexadécimale du point de code 62, soit >. Le décodeur gère indifféremment les références décimales (&#NNN;) et hexadécimales (&#xHHH;), résolvant chacune vers son caractère Unicode. Cela compte parce que les encodeurs ne s'accordent pas sur la forme à émettre — certains préfèrent le décimal, d'autres l'hex — et un décodeur robuste doit accepter l'une comme l'autre.
Décoder une entité héritée à laquelle il manque le point-virgule
© 2026
© 2026
L'ancien HTML autorisait un petit ensemble d'entités nommées à apparaître sans point-virgule final, et les navigateurs les résolvent toujours par rétrocompatibilité — © 2026 s'affiche en © 2026. Ce décodeur suit les mêmes règles d'analyse tolérantes, il récupère donc le caractère voulu à partir d'un balisage négligé ou hérité qu'un analyseur strict laisserait intact. Si vous déboguez un texte qui affiche un © perdu, c'est l'explication.
Décoder un émoji depuis sa référence hexadécimale
😀
😀
Les références numériques ne se limitent pas au plan multilingue de base — 😀 est la référence hexadécimale du point de code U+1F600, l'émoji visage souriant 😀. Le décodeur reconstruit correctement les caractères du plan astral (tout ce qui dépasse U+FFFF) à partir de leurs références numériques, si bien que les émojis, les rares idéogrammes CJK et les symboles mathématiques se décodent fidèlement plutôt que de se transformer en demi-substitut cassé ou en glyphe de remplacement.
Décoder une chaîne d'attribut échappée
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
C'est un aller-retour complet de l'exemple phare de l'encodeur. " se résout en guillemet double, ' (l'apostrophe numérique compatible) se résout en ', et les entités de chevrons et d'esperluette se résolvent vers leurs caractères littéraux, reconstruisant l'original Tom & Jerry's exactement. Comme le décodeur accepte les références nommées, décimales et hex dans n'importe quelle combinaison, il inverse ce qu'un encodeur a produit, quel que soit le style d'entité utilisé.
Comment utiliser le décodeur d'entités HTML
- 1
Collez la chaîne échappée
Déposez le texte plein d'entités HTML dans la zone de saisie. Les caractères décodés se mettent à jour en direct au fur et à mesure de la frappe — il n'y a pas de bouton d'envoi et rien n'est transmis nulle part.
- 2
Lisez le résultat décodé
Les références nommées, décimales et hexadécimales se résolvent toutes automatiquement vers les caractères qu'elles représentent, y compris les émojis et autres points de code du plan astral. Aucune sélection de format n'est nécessaire — le décodeur détecte le type de chaque référence.
- 3
Copiez le texte décodé
Cliquez sur Copier pour placer les caractères récupérés dans votre presse-papiers, prêts à être collés dans un éditeur, une base de données ou un autre outil. Effacer réinitialise les deux volets pour la chaîne suivante.
- 4
Rééchappez avant de réafficher un texte non fiable
Si la sortie décodée sera rendue de nouveau dans une page web et qu'une partie provient d'une source non fiable, rééchappez-la d'abord avec l'encodeur pour éviter de rouvrir une faille XSS.
- 5
Besoin d'encoder à la place ? Inversez le sens
Utilisez Inverser le sens pour basculer vers l'encodeur d'entités HTML lorsque vous voulez transformer des caractères bruts en entités.
Erreurs courantes de décodage HTML
A rendu une entrée décodée non fiable avec innerHTML
Le décodage déséchappe le texte, donc une balise <script> décodée est de nouveau du balisage actif. L'insérer via innerHTML l'exécute — une faille XSS de manuel. Rééchappez le texte décodé non fiable, ou utilisez textContent.
el.innerHTML = decode(userInput) → script runs (XSS)
el.textContent = decode(userInput) → shown as text
A décodé une seule fois un texte doublement encodé
Un texte doublement encodé nécessite deux passes de décodage. Décoder < une fois donne <, pas <. Décodez à nouveau — et corrigez le pipeline pour qu'il ne double-encode jamais au départ.
&lt; decoded once → < (still an entity)
&lt; decoded twice → <
A confondu décodage HTML, URL et Base64
Les entités, l'encodage en pourcent et le base64 sont des schémas différents. Un décodeur HTML ne transformera pas %20 en espace ni ne décodera un blob base64. Utilisez l'outil adapté à chaque couche d'encodage.
HTML-decode "%3Cdiv%3E" → unchanged, still percent-encoded
URL-decode "%3Cdiv%3E" → <div>
A utilisé une regex qui rate les références numériques ou astrales
Une regex maison pour les entités nommées saute silencieusement <, > et les émojis comme 😀, les laissant dans la sortie. Utilisez l'analyseur du navigateur ou une bibliothèque éprouvée qui couvre toutes les formes de référence.
regex for &name; only → 😀 left undecoded
full decoder → 😀 becomes 😀
Sortie affichée en mojibake après décodage
Décoder é donne le vrai é, mais si la page ou le fichier destinataire n'est pas servi en UTF-8 le caractère se corrompt en charabia. Réglez le jeu de caractères sur UTF-8 avant d'écrire le texte décodé.
decoded é into a Latin-1 file → é mojibake
decoded é into a UTF-8 file → é
A supposé une analyse stricte et raté les entités héritées
Un analyseur XML strict ignore les entités sans point-virgule comme ©, les laissant littérales. Les navigateurs les résolvent, donc un décodeur fidèle doit le faire aussi — sinon votre sortie diffère de ce que voient les utilisateurs.
strict parse of "© 2026" → © 2026 literal
lenient parse of "© 2026" → © 2026
Qui utilise cet outil
- Lire du balisage stocké sous forme échappée
- Vous avez tiré un fragment HTML d'une base de données, d'un journal ou d'un champ JSON où il était enregistré sous la forme <div>… ? Décodez-le pour voir et modifier le vrai balisage au lieu de plisser les yeux devant un mur d'entités.
- Déboguer un texte doublement encodé
- Vous voyez < sur une page active là où < devrait être ? Collez-le ici pour confirmer le double encodage, décodez-le deux fois pour récupérer l'original, et remontez le double échappement jusqu'à sa source dans votre pipeline.
- Extraire du texte brut d'extraits HTML
- Besoin du texte lisible d'un corps d'e-mail ou d'un champ CMS échappé ? Décodez les entités pour récupérer les caractères réels avant d'indexer, rechercher ou afficher le contenu ailleurs.
- Récupérer des caractères de données extraites ou exportées
- Les exports et les scrapers livrent souvent du contenu avec les entités intactes. Décodez &, é et consorts vers leurs caractères pour que les données soient propres avant d'entrer dans vos propres systèmes.
- Vérifier qu'une sortie d'encodeur fait l'aller-retour
- Après avoir échappé une chaîne avec l'encodeur, décodez-la ici pour confirmer que vous récupérez l'original inchangé. Un aller-retour propre prouve que votre échappement est correct et réversible.
- Résoudre une entité mystère
- Vous bloquez sur ce qu'est réellement ™ ou … ? Collez-le et lisez le caractère décodé, ou consultez le tableau de référence rapide intégré — pas besoin de mémoriser les tables d'entités.
- Décoder du balisage hérité en toute sécurité
- Vous travaillez avec du vieux HTML qui utilise des entités sans point-virgule comme © ou   de façon incohérente ? Le décodeur tolérant récupère les caractères voulus comme le ferait un vrai navigateur, de sorte que votre nettoyage correspond à ce que les utilisateurs voient réellement.
Comment fonctionne le décodeur
- Résout les trois formes de référence
- Le décodeur compare les références nommées à la table complète des caractères nommés HTML5, analyse les références décimales (&#NNN;) comme des points de code en base 10, et les références hexadécimales (&#xHHH;) comme des points de code en base 16. Chacune se résout vers son caractère Unicode ; les trois formes sont interchangeables en entrée.
- Reconstruction du plan astral
- Les références numériques dont le point de code dépasse U+FFFF — la plupart des émojis et de nombreux symboles — sont converties en la paire de substitution correcte pour que le caractère s'affiche comme un seul glyphe. 😀 devient 😀, pas deux demi-caractères cassés.
- Gestion tolérante des entités héritées
- Un sous-ensemble défini d'entités nommées apparaissait historiquement sans point-virgule final, et les navigateurs les résolvent toujours. Le décodeur reflète ce comportement — © 2026 donne © 2026 — correspondant au rendu d'un vrai navigateur plutôt qu'à celui d'un analyseur XML strict.
- Idempotent sur le texte brut
- Les caractères qui ne font pas partie d'une référence reconnue, y compris le texte non ASCII brut déjà présent dans l'entrée, passent intacts. Décoder une chaîne sans entités la renvoie inchangée, l'opération est donc sûre à exécuter sur du contenu mixte.
- La sortie décodée est déséchappée
- Le décodage est l'inverse de l'échappement protecteur contre le XSS, le résultat est donc de nouveau du balisage actif. L'outil le signale pour que vous n'insériez pas un texte décodé non fiable dans une page avec innerHTML — rééchappez-le dans son contexte de destination avant le rendu.
- Local au navigateur, réseau nul
- Le décodage s'exécute de manière synchrone en JavaScript sur le thread principal ; il n'y a aucun appel d'API, aucun aller-retour serveur, et aucune persistance. L'entrée ne quitte jamais la page, ce que vous pouvez confirmer en observant un panneau Réseau vide pendant la frappe.
Bonnes pratiques de déséchappement HTML
- Ne jamais rendre directement un texte décodé non fiable
- La sortie décodée est du balisage déséchappé. Si une partie provient d'un utilisateur ou d'une source externe, rééchappez-la avant de l'insérer dans une page, ou affectez-la via textContent plutôt qu'innerHTML. Sauter cette étape rouvre la faille d'injection de script que l'échappement était censé fermer.
- Décoder dans l'ordre inverse de l'encodage
- Une valeur peut être encodée en HTML, puis en URL, puis en Base64. Défaites les couches dans l'ordre inverse de leur application — et utilisez l'outil adapté à chacune : celui-ci pour les entités, le décodeur d'URL pour l'encodage en pourcent, l'outil Base64 pour le base64.
- Décoder une fois, pas par réflexe
- Si un seul décodage laisse des entités visibles comme <, l'entrée était doublement encodée — décodez à nouveau pour récupérer l'original, puis corrigez le pipeline en amont pour que le texte soit échappé exactement une fois. Ne bouclez pas aveuglément ; comprenez pourquoi la couche supplémentaire existe.
- Servir le résultat en UTF-8
- Décoder des références numériques produit de vrais caractères Unicode — accents, symboles, émojis. Assurez-vous que la page, le fichier ou le champ qui reçoit le texte décodé est en UTF-8, sinon ces caractères récupérés s'afficheront en mojibake.
- Préférer une bibliothèque éprouvée dans le code applicatif
- Pour des conversions ponctuelles, cet outil est idéal ; en production, décodez avec une bibliothèque éprouvée (he sous Node, l'analyseur du navigateur via un textarea détaché) plutôt qu'avec une regex maison, qui rate régulièrement les références numériques, les caractères astraux et les entités héritées.
Questions fréquentes
Mon texte est-il envoyé à votre serveur lorsque je le décode ?
Que signifie décoder ou déséchapper le HTML ?
Quels types d'entités ce décodeur peut-il gérer ?
Pourquoi mon texte affiche-t-il < au lieu de < ?
La sortie décodée sera-t-elle sûre à réinsérer dans une page ?
Le décodage gère-t-il correctement les caractères non ASCII et les émojis ?
Comment réencoder du texte en entités ?
Est-ce la même chose que le décodage d'URL ou de Base64 ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Convertisseur Base64 en Image
Encodage et formatage
Décodez une chaîne Base64 ou un URI de données en image dans votre navigateur. Aperçu, dimensions et MIME, puis téléchargement en PNG, JPG, GIF, SVG. Sans envoi.
Convertisseur CSV vers JSON
Encodage et formatage
Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.
Convertisseur .env vers JSON
Encodage et formatage
Collez un fichier .env, obtenez du JSON instantanément. Vos mots de passe et clés API ne quittent jamais le navigateur — 100 % privé, sans envoi.
Encodeur d'entités HTML gratuit — Échapper le HTML
Encodage et formatage
Encodez les entités HTML et échappez les caractères spéciaux (< > & " ') en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Sortie nommée, décimale ou hexadécimale ; jamais envoyée.
Convertisseur HTML vers Markdown
Encodage et formatage
Convertissez du HTML en Markdown propre dans le navigateur — tables GFM, listes de tâches, liens. Titres ATX/Setext et liens inline ou par référence. Idéal pour migrer du contenu web ou alimenter des LLM. 100 % privé.