Encodeur / décodeur d'entités HTML

Échappez les caractères spéciaux HTML en entités nommées, décimales ou hexadécimales et décodez-les en texte. Gère les emoji. Entièrement dans le navigateur.

Vos saisies et fichiers restent dans le navigateur

Saisissez du HTML ou du texte à échapper, ou collez des entités comme < pour les décoder.

Le texte échappé ou décodé s’affiche ici.

Sur cette page

Échappez esperluettes, chevrons, guillemets et caractères non ASCII en entités HTML, ou retransformez les entités en texte brut. L'outil est du JavaScript simple exécuté dans votre navigateur : le balisage collé n'est envoyé nulle part.

Fonctionnalité détaillée

Trois modes d'encodage couvrent les cas courants. Le mode caractères spéciaux, par défaut, échappe les cinq caractères qui comptent dans le balisage et les attributs HTML : &, <, >, " et '. Le mode non ASCII laisse le balisage intact et convertit lettres accentuées, symboles et emoji, utile quand un modèle ou un e-mail doit rester en ASCII pur. Le mode tous les caractères fait les deux.

Les entités s'écrivent en références nommées (&amp;, &copy;), décimales (&#169;) ou hexadécimales (&#xA9;). Seuls une trentaine de symboles courants ont un nom dans cet outil, comme &copy;, &mdash;, &euro; et &nbsp; ; les autres caractères passent en référence hexadécimale même en format nommé. Les emoji et autres caractères hors du plan multilingue de base deviennent une seule référence, comme &#x1F600;.

Le décodage comprend les mêmes entités nommées ainsi que les références décimales et hexadécimales (&#169;, &#xA9;, &#XA9;) et se fait en une seule passe : &amp;lt; devient donc bien &lt; et non <. Les noms inconnus comme &hearts; et les références sans point-virgule final restent tels quels.

Exemples pratiques

Échapper du balisage : <a href="x">Tom & Jerry</a> devient &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&lt;/a&gt; avec les réglages par défaut.

Non ASCII uniquement : © 2026 — café <b> devient &copy; 2026 &mdash; caf&#xE9; <b> : la balise reste telle quelle, et é, sans nom dans la liste, passe en hexadécimal.

Emoji : en mode tous les caractères, 😀 © devient &#128512; &#169; en format décimal et &#x1F600; &#xA9; en hexadécimal.

Décodage : &lt;p&gt; &#169; &#x1F600; &euro; se décode en <p> © 😀 €, tandis que &amp;lt; donne &lt;.

Comment utiliser cet outil

  1. Coller le texte

    Tapez ou collez du texte brut ou du HTML dans Texte à encoder/décoder.

  2. Choisir le mode et le format

    Dans Mode d'encodage, choisissez Uniquement caractères spéciaux (& < > " '), Uniquement caractères non-ASCII ou Tous les caractères (spéciaux + non-ASCII). Dans Format des entités, choisissez Nommé (&amp;), Décimal (&#38;) ou Hexadécimal (&#x26;). Ces réglages ne concernent que l'encodage.

  3. Encoder ou décoder

    Cliquez sur Encoder en HTML pour échapper le texte ou sur Décoder du HTML pour retransformer les entités en caractères.

  4. Copier le résultat

    Copier place la sortie dans le presse-papiers. Échanger la renvoie dans l'entrée, par exemple pour décoder une deuxième couche.

Conseils et bonnes pratiques

  • Pour du texte placé dans des éléments HTML ou des attributs entre guillemets, échapper les cinq caractères spéciaux suffit ; le texte non ASCII n'a pas besoin d'entités si la page est servie en UTF-8.
  • Échapper n'est pas une protection complète contre le XSS : les valeurs placées dans href, dans <script> ou dans du CSS demandent un traitement adapté au contexte, comme la validation d'URL ou l'encodage JSON.
  • L'apostrophe est encodée en &#x27; (ou &#39; en format décimal) plutôt qu'en &apos;, que HTML 4 ne définissait pas.
  • Le décodage se fait en une passe : un texte échappé deux fois comme &amp;amp; donne d'abord &amp; ; cliquez sur Échanger et décodez à nouveau.
  • Seules les entités nommées de la liste intégrée sont décodées ; les références numériques fonctionnent pour tout caractère Unicode.