Encodage UTF-8

L'équipe Citead, mis à jour le

En bref. Les déclarations UTF-8 indiquent un encodage ; un décodage correct exige aussi des octets de fichier et des métadonnées serveur concordants.

Définition : L’encodage UTF-8 est une méthode de représentation du texte Unicode sous forme d’octets pour le stockage et la transmission. Une déclaration d’encodage indique aux logiciels comment décoder ces octets pour reconstituer le texte.

Points clés

  • La norme Encoding du WHATWG impose aux auteurs d’utiliser UTF-8 et de l’identifier par le libellé utf-8, sans distinction entre majuscules et minuscules.
  • La norme HTML du WHATWG exige qu’une déclaration d’encodage HTML par balise meta figure intégralement dans les 1024 premiers octets du document.
  • Les consignes de conversion du W3C imposent d’enregistrer ou de convertir les données en UTF-8, en plus de modifier leur déclaration.
  • L’introduction du W3C aux encodages explique que l’absence d’information sur l’encodage peut nuire à la lisibilité, au traitement par les moteurs de recherche et aux autres traitements automatisés.

Comment une page HTML déclare-t-elle l’encodage UTF-8 ?

Les règles de la norme HTML sur l’élément meta définissent charset comme l’attribut qui indique l’encodage des caractères du document. Sa valeur doit correspondre à utf-8, sans distinction entre majuscules et minuscules, et un document ne peut contenir qu’une seule déclaration d’encodage par balise meta.

L’exemple de conversion du W3C place la déclaration au début de l’élément HTML head :

<meta charset="utf-8">

Les mêmes consignes expliquent qu’un serveur peut indiquer un encodage contradictoire dans un en-tête HTTP, c’est-à-dire dans les métadonnées de réponse qui accompagnent la page. L’en-tête Content-Type fait donc partie des éléments à vérifier, même lorsque la déclaration HTML est correcte.

Un indicateur d’ordre des octets (byte order mark, ou BOM) est une signature d’encodage placée au début d’un flux d’octets. Les règles d’analyse HTML donnent la priorité au BOM initial sur l’encodage fourni et ignorent le marqueur lui-même. L’algorithme de sélection de l’encodage examine les informations d’encodage prises en charge fournies par la couche de transport avant de parcourir le HTML à la recherche d’une déclaration.

Quelles sont les causes des erreurs de décodage ?

Un encodage établit une correspondance entre les octets et les caractères. L’introduction du W3C aux encodages explique qu’une information d’encodage incorrecte conduit les logiciels à rechercher les mauvais caractères. Elle distingue aussi ce problème de l’absence de glyphes dans une police : la police fournit les formes qui servent à afficher les caractères après le décodage.

Des données d’entrée mal formées constituent une autre cause d’erreur. Les règles de décodage de la norme Encoding définissent un mode de remplacement et un mode d’erreur fatale. Le mode de remplacement produit le caractère de remplacement U+FFFD (�) en cas d’erreur de décodage. L’interface JavaScript TextDecoder de la norme lève une exception TypeError lorsque son décodeur rencontre une erreur en mode fatal.

Pour un corps de réponse stocké dans un tableau d’octets nommé bytes, cette expression vérifie le décodage en mode fatal :

new TextDecoder("utf-8", { fatal: true }).decode(bytes);

La spécification de l’analyse HTML classe également les séquences d’octets UTF-8 invalides parmi les erreurs que les validateurs de conformité sont censés signaler.

Comment vérifier l’encodage d’un site web ?

La procédure de conversion du W3C commence par les données enregistrées. Pour les fichiers modifiés manuellement, l’éditeur doit enregistrer des octets en UTF-8. Pour les pages produites à partir de scripts et de bases de données, la conversion et les paramètres de l’environnement de script doivent produire l’encodage voulu.

La procédure vérifie ensuite la déclaration de la page et la réponse du serveur. L’outil Internationalization Checker affiche une ligne HTTP Content-Type dans la rubrique Character Encoding, où le résultat attendu est UTF-8 ou No encoding information found. Une déclaration différente du côté du serveur doit être corrigée, car elle prend le pas sur les informations d’encodage présentes dans la page.

Termes associés

Questions fréquentes

L’ajout d’une déclaration meta charset convertit-il mon fichier ?

Vous devez aussi enregistrer ou convertir les octets. Les consignes de conversion du W3C exigent explicitement que les données elles-mêmes soient encodées en UTF-8.

Une déclaration d’encodage est-elle nécessaire pour une page uniquement en anglais ?

La norme HTML impose une déclaration même lorsque tous les caractères appartiennent à la plage ASCII. Elle mentionne la saisie dans les formulaires et les URL produites par des scripts parmi les raisons pour lesquelles le document a tout de même besoin d’un encodage.

Un carré indique-t-il toujours une erreur d’encodage ?

Les explications du W3C sur les polices présentent les carrés et les points d’interrogation comme des conséquences possibles de l’absence de glyphes. Vous pouvez vérifier les caractères couverts par la police ainsi que l’encodage.

Sources

  1. WHATWG, « Encoding Standard », mis à jour le 21 mai 2026
  2. WHATWG, « HTML Standard: Document metadata », consulté le 17 octobre 2026
  3. WHATWG, « HTML Standard: Parsing HTML documents », consulté le 17 octobre 2026
  4. W3C, « Changing an HTML page to Unicode », consulté le 17 octobre 2026
  5. W3C, « Character encodings for beginners », consulté le 17 octobre 2026

Vérifiez comment une page se lit pour les moteurs de réponse. Ouvrir l’analyseur de score GEO

Testez une page et voyez quoi corriger en premier

L'analyse prend en général moins de 10 secondes et ne demande pas de compte.

400 000+ pages notées dans le benchmark public