Pourquoi encoder les entités HTML ?
En HTML, certains caractères ont une signification spéciale : < et > délimitent les balises, & introduit une entité, " délimite les attributs. Si votre texte contient ces caractères (par exemple du code source ou une formule mathématique), ils doivent être encodés en entités HTML (< > & ") pour être affichés correctement sans être interprétés comme du code HTML. C'est aussi une mesure de sécurité essentielle contre les attaques XSS (Cross-Site Scripting).
Les entités HTML nommées et numériques
Les entités HTML peuvent être nommées (& © €) ou numériques (&#38; &#169; &#8364;). Les entités nommées sont plus lisibles mais seules les plus courantes sont standardisées. Les entités numériques (décimales &#123; ou hexadécimales &#x7B;) peuvent représenter n'importe quel caractère Unicode. Les 5 entités essentielles à connaître sont : &amp; &lt; &gt; &quot; et &#39; (apostrophe).