Les documents HTML ne devaient à l'origine du HTML être constitués que de caractères ASCII (norme définissant 128 caractères).
Les lettres accentuées, les lettres d'autres alphabets, certains symboles et d'autres caractères ne sont pas compris dans cet encodage ; ils sont sont considérés comme des caractères spéciaux.
Pour afficher des caractères spéciaux, on utiles des entités HTML qui peuvent se définir ainsi :
& + nom (ou code ISO) + ;
Ainsi pour afficher le caractère é, on peut écrire
é
ou avec le code ISO :
&233;
(Pour des raisons de lisibilité humaine, il convient d'utiliser de préférence les noms plutôt que les codes ISO)
Aujourd'hui, il n'est plus obligatoire d'écrire un document HTML uniquement avec des codes ASCII.
On peut utiliser des encodages comprenant plus de caractères (ISO-8859-1, ISO-8859-15, UTF-8,...). Dans ce cas on peut utiliser tous les caractères compris dans ces encodages, l'affichage des caractères non compris doit normalement être fait via les entités correspondantes.
Ainsi en ISO-8859-1, il nécessaire d'utiliser les entités pour les caractères œ (œ) et € (€). Alors qu'en ISO-8859-15, ces deux caractères font parties de la norme et peuvent être écrits tels quels.
Sur ce point l'utilisation de l'encodage UTF-8 présente le grand avantage de n'avoir quasiment pas à recourir aux entités HTML, puisque cet encodage comprend théoriquement tous les caractères.
En théorie certains caractères sont réservé au langage HTML et ne devraient pas être utilisés dans le contenu d'un document HTML. Il s'agit de :
En pratique, il s'avère que seuls les caractères <, > et & doivent être toujours encodés par des entités HTML, les premiers marquant l'ouverture ou la fermeture de balises et le dernier le début d'écriture d'une entité HTML.
Entités HTML dont l'usage est fréquent, à connaître.
Esperluette | Opérateur | Caractère | Opérateur | Accent | Opérateur | Point-virgule |
---|---|---|---|---|---|---|
& | + | a A e E i I o O u U y Y |
+ | acute (aïgu) grave (grave) circ (circonflexe) uml (umlaüt = tréma) |
+ | ; |
Ce qui donne par exemple :
é = & + e + acute + ; = é
û = & + u + circ + ; = û
ï = & + i + uml + ; = ï