Utilia

Encodeur/décodeur d'entités HTML

Convertissez les caractères spéciaux en entités HTML (nommées, décimales ou hexadécimales) ou décodez-les grâce à la liste complète des 2 231 entités HTML5.

Options d’encodage

Comment encoder ou décoder des entités HTML

  1. Collez votre texte ou votre HTML dans la zone de saisie.
  2. Pour l’échapper, choisissez les caractères à encoder : Seulement & < > " ' ou Aussi tous les caractères non ASCII, puis un Format des entités : Nommées (&eacute;), Décimales (&#233;) ou Hexadécimales (&#xE9;).
  3. Cliquez sur Encoder, ou sur Décoder pour retrouver les caractères d’origine.
  4. Lisez le décompte dans la ligne d’état, puis cliquez sur Copier. Réutiliser le résultat place le résultat dans la zone de saisie, par exemple pour vérifier un aller-retour.

Encoder : quand et quoi échapper

En HTML, cinq caractères peuvent être pris pour du balisage. Seulement & < > " ' remplace exactement ceux-là : & par &amp;, < par &lt;, > par &gt;, " par &quot; et ' par &#39;. C’est ce qu’il faut pour afficher du code sur une page web, placer un texte saisi par un utilisateur dans un attribut, ou coller un extrait dans un article de blog ou un champ de CMS qui attend du HTML. L’apostrophe prend la forme numérique, car &apos; n’existait pas en HTML 4 et certains analyseurs anciens ne le connaissent pas.

Aussi tous les caractères non ASCII remplace en plus tout ce qui sort de l’ASCII imprimable : lettres accentuées, guillemets typographiques « », symbole euro, espaces insécables, émojis… Le résultat est en pur ASCII, ce qui est utile pour les systèmes qui abîment l’UTF-8, pour les modèles d’e-mails, ou pour rendre visibles dans le code source des caractères invisibles comme &nbsp;.

Le Format des entités détermine l’écriture des caractères :

  • Nommées (&eacute;) utilise un nom lisible quand le HTML en définit un (&eacute;, &euro;, &laquo;), en privilégiant le nom classique du HTML 4 quand un caractère en a plusieurs. Les caractères sans nom, comme les émojis, passent en décimal ;
  • Décimales (&#233;) écrit le point de code Unicode en base 10 ;
  • Hexadécimales (&#xE9;) l’écrit en base 16, comme la notation U+00E9 des tables Unicode.

Les trois formes sont comprises par tous les navigateurs. Les caractères situés hors du plan multilingue de base, comme 😀, sont encodés en une seule référence au point de code complet (&#128512;), et non en deux demi-codets de substitution.

Décoder : les règles du HTML5

Décoder suit les règles qu’appliquent les navigateurs au contenu textuel, avec la liste complète des 2 231 références nommées du standard HTML (HTML Living Standard) :

  • les références nommées comme &eacute;, &rarr; ou &NotEqualTilde; (certaines produisent deux points de code) ;
  • les références décimales (&#233;) et hexadécimales (&#xE9; ou &#XE9;), avec ou sans point-virgule final ;
  • les anciens noms que les navigateurs acceptent sans point-virgule, comme &copy 2026 ou &amp ; comme dans un navigateur, &notit; devient ¬it;, puisque &not fait partie de ces noms ;
  • les références numériques de 128 à 159 correspondent aux caractères Windows-1252 qu’affichent les navigateurs (&#150; donne un tiret demi-cadratin), tandis que &#0;, les demi-codets et les valeurs au-delà de U+10FFFF donnent le caractère de remplacement �.

Les noms inconnus comme &foo; restent inchangés et sont comptés dans la ligne d’état. Le décodage passe par l’analyseur de l’outil lui-même, et non par l’insertion de votre texte dans la page : le balisage ou les scripts éventuels ne sont donc jamais interprétés.

Questions fréquentes

Faut-il encoder les caractères accentués ?

En général, non. Une page servie en UTF-8 peut contenir directement é ou €. L’encodage des caractères non ASCII n’est utile que si le fichier ou un système intermédiaire ne gère pas l’UTF-8.

Pourquoi &amp;amp; donne-t-il &amp; et non & ?

Le décodage se fait une seule fois, comme dans un navigateur. &amp;amp; est un &amp; échappé. Cliquez sur Réutiliser le résultat puis de nouveau sur Décoder si le texte a été encodé deux fois.

Quelle différence avec l'encodage d'URL ?

Les entités HTML échappent du texte pour des documents HTML. L’encodage d’URL (%20, %C3%A9) échappe du texte pour des adresses web. Pour les liens et les paramètres de requête, utilisez l’encodeur d’URL.

Mon texte est-il envoyé à un serveur ?

Non. L’encodage et le décodage se font dans votre navigateur. Seule la liste des noms d’entités est chargée depuis ce site lors du premier décodage.

Les entités situées dans des attributs sont-elles décodées différemment ?

Dans les valeurs d’attributs, les navigateurs traitent autrement quelques anciens noms sans point-virgule. Cet outil applique les règles du contenu textuel, qui correspondent à ce que vous voyez sur la page.