L'encodage utilisé dans un document HTML indique aux navigateurs quel jeu de caractères ils doivent utiliser pour le rendu des pages web.
Lorsque vous ne spécifiez pas le jeu de caractères à prendre en compte dans votre document HTML, les navigateurs essaieront d'abord de déterminer l'encodage à partir des en-têtes des réponses HTTP émises par votre serveur (en particulier, l'en-tête "Content-Type").
L'encodage défini dans les en-têtes de ces réponses HTTP est généralement préféré à l'encodage spécifié dans votre document HTML, et constitue donc la méthode privilégiée.
Toutefois, si vous ne pouvez pas contrôler les en-têtes envoyés par votre serveur, définir l'encodage dans votre document HTML reste la meilleure option.
Voici comment définir l'encodage dans un document HTML :
<meta charset="utf-8">
Si l'encodage n'est déclaré ni dans le document HTML ni dans les en-têtes des réponses HTTP, le navigateur peut en choisir un pour vous et il se peut qu'il ne corresponde pas aux besoins de votre site.
Cela peut non seulement causer des problèmes de rendu, mais aussi présenter un risque pour la sécurité de votre site web.
Dans les versions précédentes du HTML, l'encodage devait être déclaré avec des attributs et des valeurs supplémentaires :
<meta http-equiv="Content-Type" content="text/html ; charset=UTF-8" />
Mais, comme pour le DOCTYPE, HTML5 n'a besoin que de quelques informations minimales requises par les navigateurs. Cela favorise la rétrocompatibilité et facilite l'écriture du code pour les développeurs.