Encodeur d'entités HTML
Échappez du texte en entités HTML pour que les caractères de balisage survivent, dans votre navigateur.
Fonctionne entièrement dans votre navigateur. Rien n'est envoyé, journalisé ni conservé.
Cinq caractères ne peuvent pas apparaître littéralement en HTML sans changer le sens du balisage : l'esperluette, les deux chevrons et les deux sortes de guillemet. Les échapper, c'est ce qui transforme un texte en un texte que le navigateur affiche au lieu d'obéir.
Comment ça marche
Le mode minimal n'échappe que ces cinq caractères. C'est presque toujours le bon choix : si votre page est en UTF-8 et vos fichiers aussi, une lettre accentuée n'a besoin d'aucun échappement, et l'échapper rend la source moins lisible sans rien apporter.
Les entités nommées remplacent chaque caractère auquel HTML 4.01 donne un nom — 252 en tout, é en é, © en ©. À utiliser quand la sortie doit traverser quelque chose qui abîme tout ce qui dépasse l'ASCII, comme un vieux système de messagerie ou une colonne de base de données mal collationnée.
Les références numériques offrent la même garantie par point de code plutôt que par nom, donc elles marchent pour tous les caractères et non pour les 252 qui ont un nom. Elles sont écrites en hexadécimal avec le point-virgule final, que tous les analyseurs acceptent.
Exemples
| Cas | Saisie | Résultat |
|---|---|---|
| Une balise qui doit s'afficher, pas s'exécuter | <script>alert(1)</script> | <script>alert(1)</script> |
| Une esperluette à l'intérieur d'une valeur | Tom & Jerry | Tom & Jerry |
| Une lettre accentuée, nommée | café | café |
Questions fréquentes
Échapper ici suffit-il à rendre une saisie utilisateur sûre ?
Pour du texte entre balises, et pour une valeur d'attribut entre guillemets, oui : les guillemets sont échappés aussi. Ailleurs, non : une valeur qui part dans une URL, un bloc de style ou un bloc de script demande son propre échappement, et les entités HTML sont le mauvais outil pour les trois. Échappez au moment de la sortie, dans le contexte de cette sortie, dans votre code — pas en passant par une page web.
Pourquoi l'apostrophe devient-elle ' et non ' ?
' n'existe pas en HTML 4.01. Il a été ajouté par XHTML puis par HTML5, et les vieux navigateurs l'affichent littéralement. La forme numérique, elle, a toujours fonctionné partout.
Quelles entités nommées sont prises en charge ?
Les 252 de HTML 4.01. HTML5 en définit environ deux mille de plus, surtout mathématiques, et elles ne sont pas incluses ici. Ce qui n'a pas de nom dans cet ensemble est laissé tel quel en mode nommé, ou échappé par point de code en mode numérique.
Faut-il échapper les accents sur un site moderne ?
Non. Si la page déclare UTF-8 et que le fichier est enregistré en UTF-8, é est simplement é. Les entités nommées servent à faire passer du texte à travers des systèmes qui ne sont pas propres en UTF-8.
Bon à savoir
- Tout se passe dans votre navigateur. Ce que vous collez n'est ni téléversé, ni journalisé, ni stocké.