Logo du Web Design Group

L'utilisation des codages de caractères

Autres langues : English

Le codage des caractères est une méthode de conversion d'octets en caractères. Un programme doit choisir un codage des caractères afin de pouvoir valider ou afficher un document HTML. Pour les documents en français et la plupart des langues d'Europe occidentale, on utilise généralement le codage omniprésent ISO-8859-1.

Les versions de HTML antérieures à HTML 4.0 ne reconnaissaient qu'un jeu de caractères limité, en ne permettant que les caractères qui pouvaient être codés au moyen du codage ISO-8859-1. Les documents contenant des caractères chinois, cyrilliques, grecs ou d'autres caractères non latins doivent donc utiliser HTML 4.0 ou une version ultérieure (ou une version de HTML personnalisée). Les tentatives de valider des documents non latins par rapport à HTML 3.2 ou une version antérieure donneront une erreur pour chacun des caractères non latins.

Un document HTML doit indiquer son codage des caractères. La méthode recommandée pour le faire est celle utilisant le paramètre charset de l'en-tête HTTP Content-Type. Par exemple, pour indiquer qu'un document HTML utilise le codage ISO-8859-1, le serveur enverra l'en-tête suivante :

Content-Type: text/html; charset=ISO-8859-1

L'instruction qui produira cette en-tête est propre au serveur ; consultez sa documentation si nécessaire. Pour le serveur Apache, très répandu, on peut ajouter, dans tout répertoire, un fichier intitulé « .htaccess » qui déterminera le type de contenu (N.d.T. Content-Type) des fichiers, dans ce répertoire et dans tous les sous-répertoires qui s'y trouvent. Dans l'exemple précédent, pour définir le type de contenu de tous les fichiers ayant un suffixe « html », on pourrait écrire dans le fichier « .htaccess » :

AddType 'text/html; charset=ISO-8859-1' html

Une autre façon de fixer le codage des caractères, moins souhaitable, consiste à déclarer dans la balise HEAD d'un document HTML la balise suivante :

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">

Cette methode, qui oblige les caractères ASCII à se représenter eux-mêmes tant que la balise <META> n'est pas lue, entraîne souvent un rafraîchissement de l'affichage gênant avec Netscape. On ne devrait utiliser la méthode META HTTP-EQUIV que si l'on n'a pas accès au réglage du paramètre charset sur le serveur.

Plus d'informations