Aller au contenu

Encodeur d’entités HTML

HTML Entity Encoder

Échappe et déséchappe les entités HTML, avec sortie nommée, décimale ou hexadécimale.

Convertit des caractères en entités HTML et inversement — `&`, `&`, `&` — avec le choix de ce qu'il faut échapper. Le décodage applique aussi la réaffectation vers Windows-1252 qu'exige la spécification d'analyse HTML : c'est pourquoi `’` revient sous forme d'apostrophe typographique plutôt que de caractère de contrôle.

🔒 Fonctionne entièrement dans votre navigateurhtmlentityescape
Règles
Sens
Échapper

Seulement `&`, `<` et `>`. C’est tout ce qu’il faut entre deux balises, et rien de plus.

En

Texte

Encodé

Les cinq que XML définit

Les cinq entités XML prédéfinies.
CaractèreNomméeDécimalHexa
&&amp;&#38;&#x26;
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;

Ce sont les seules références nommées dont XML dispose sans DTD. Tout le reste dans un document XML doit être numérique.

Comment s’en servir

  1. Décidez de ce qu'il faut échapper

    Contenu texte n'échappe que `&`, `<` et `>` — tout ce dont vous avez besoin entre deux balises. Valeur d'attribut ajoute les deux caractères de guillemet. Tout le non-ASCII s'adresse à une chaîne de traitement incapable de transporter de l'UTF-8, et fait passer chaque caractère accentué à six ou huit caractères.

  2. Choisissez la notation

    Nommée (`&amp;`) se lit le mieux ; décimale et hexadécimale sont numériques et fonctionnent en XML, qui n'a que cinq références nommées sans DTD.

  3. Ou faites le chemin inverse

    Passez sur Déséchapper et collez du texte plein d'entités. Tout ce que la table ne reconnaît pas est listé et laissé exactement tel quel plutôt que supprimé.

Questions fréquentes

Pourquoi l'une de mes entités a-t-elle été laissée telle quelle ?

HTML5 définit 2 231 références nommées et la table d'ici porte un sous-ensemble choisi — tous les caractères Latin-1, la ponctuation, le grec, les flèches et les symboles mathématiques courants. Tout ce qui en sort est listé par son nom dans une note plutôt que supprimé en silence, ce qui est l'échec honnête.

L'échappement en entités protège-t-il du XSS ?

C'est le bon échappement pour du contenu texte et pour une valeur d'attribut entre guillemets, et il ne suffit nulle part ailleurs — dans un bloc `<script>`, dans une URL `javascript:`, dans un attribut sans guillemets ou dans un contexte CSS, l'échappement en entités ne sert à rien. L'échappement doit correspondre au contexte où il atterrit.

Pourquoi `&#146;` se décode-t-il en apostrophe ?

Parce que la spécification d'analyse HTML dit que les points de code 0x80–0x9F dans une référence numérique doivent être réaffectés aux caractères Windows-1252 qui occupent ces positions. Les décoder littéralement donnerait des caractères de contrôle C1 invisibles, ce que produit un décodeur naïf sur du texte collé depuis Word.

Puis-je utiliser `&nbsp;` en XML ?

Pas sans une DTD qui le déclare. XML a exactement cinq références nommées prédéfinies — `&amp;` `&lt;` `&gt;` `&quot;` `&apos;` — et la table en bas de page les liste. Tout le reste doit être numérique.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.