MiServe DevTools

Vos autocollants

Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.

Encodeur / décodeur d'entités HTML

Échappez du texte pour le HTML avec des références de caractères nommées ou numériques, et reconvertissez en caractères des références comme &, é et é.

S'exécute dans votre navigateur. Rien de ce que vous collez n'est envoyé.

À propos de cet outil

Qu'est-ce qu'une entité HTML ?

Une référence de caractère HTML, qu'on appelle généralement une entité, écrit un caractère en n'utilisant que de l'ASCII simple. Elle prend trois formes : un nom, comme é ; un point de code décimal, comme é ; et un point de code hexadécimal, comme é. Les trois donnent le même é.

Cinq caractères comptent plus que les autres. & et < sont échappés dans le texte, car ils peuvent ouvrir une référence ou une balise. Le guillemet qui délimite la valeur d'un attribut doit être échappé à l'intérieur de celle-ci. > est échappé par convention. Réservés uniquement encode exactement ces cinq-là : & < > " '.

Noms, références numériques et où les utiliser

HTML 4 définissait 252 noms, et le standard HTML actuel en définit 2 125. XML lui-même n'en prédéfinit que cinq : amp, lt, gt, quot et apos. Tout autre nom ne fonctionne dans un document XML, comme un fichier SVG ou un flux RSS, que si une DTD le déclare. Les références numériques fonctionnent aussi bien en HTML qu'en XML : choisissez une sortie numérique si le texte risque de se retrouver dans du XML.

Cet outil écrit l'apostrophe sous forme de référence numérique, &#39; ou &#x27;, car &apos; ne fait pas partie de HTML 4. Une page servie en UTF-8 n'a aucun besoin d'encoder ses lettres accentuées ou ses emoji ; Tous les non-ASCII sert dans les cas où le texte doit traverser un canal qui ne transporte que de l'ASCII.

Un groupe de caractères ne peut pas s'écrire sous forme de référence. HTML lit une référence numérique de 128 à 159 comme le caractère Windows-1252 situé à cette position, s'il en existe un : &#133; donne donc des points de suspension, et non le caractère de contrôle U+0085. L'encodeur laisse ces caractères de contrôle tels quels et vous le signale quand c'est le cas.

Comment fonctionne le décodage ici

Le décodeur applique les règles que le standard HTML définit pour le texte. Les références numériques sont acceptées avec ou sans point-virgule final. Un nombre de 128 à 159 est lu comme le caractère Windows-1252 situé à cette position, quand cet encodage en a un (ainsi &#150; donne un tiret demi-cadratin), et zéro, les demi-codets (surrogates) et les nombres au-delà de U+10FFFF deviennent U+FFFD et sont listés sous le résultat. Les noms exigent leur point-virgule, sauf les 106 noms anciens comme &copy et &nbsp que les navigateurs acceptent encore sans.

Les noms sont sensibles à la casse et sont recherchés dans une copie intégrée de la table du standard. Ce qui ressemble à une référence sans correspondre à aucun nom est laissé tel quel et listé sous le résultat. Dans la valeur d'un attribut, le standard laisse certaines références sans point-virgule non décodées ; cet outil applique toujours les règles du texte. Votre entrée n'est jamais transmise au parseur HTML du navigateur : rien de ce que vous collez n'est rendu ni exécuté.

Questions

Quels caractères faut-il échapper en HTML ?

Dans le texte, le signe inférieur à, et l'esperluette partout où elle pourrait être lue comme le début d'une référence de caractère. Échapper toutes les esperluettes est le moyen le plus simple de respecter cette règle. Dans la valeur d'un attribut, échappez aussi le guillemet qui l'entoure. Échapper le signe supérieur à n'est pas obligatoire, mais c'est courant et sans danger.

Échapper les entités HTML suffit-il à empêcher le cross-site scripting (XSS) ?

Seulement là où la valeur est placée dans du texte HTML ou dans un attribut entre guillemets. Une valeur placée dans un bloc script, une URL, un style ou un gestionnaire d'événement doit plutôt suivre les règles d'échappement propres à ce contexte.

Quelle est la différence entre un espace insécable (nbsp) et un espace normal ?

L'espace insécable est le caractère U+00A0, et nbsp est son nom en tant que référence de caractère. Un navigateur ne coupe pas la ligne à cet endroit et ne fusionne pas plusieurs espaces insécables en un seul, comme il le fait avec une suite d'espaces normaux.

Pourquoi une référence n'a-t-elle pas été décodée ?

Un nom que le standard HTML ne définit pas n'est pas une référence de caractère : un navigateur l'affiche tel quel, et cet outil le laisse inchangé et le liste. Vérifiez l'orthographe et la casse, car les noms y sont sensibles : Eacute et eacute sont deux caractères différents. Vérifiez aussi le point-virgule, dont seuls 106 noms anciens peuvent se passer.

Autres outils de la catégorie Encodage