Dans l'entête des pages XHTML on trouve souvent
<?xml version="1.0" encoding="iso-8859-15"?>
ou bien
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Les arguments encoding (dans l'entête XML) ou charset (dans la section <head> de la page) sont importants car ils désignent le codage de caractères utilisé dans la page XHTML source et permmettent donc au navigateur de présenter correctement la page.
Dans les années 60, le code ASCII a été normalisé pour représenter les caractères dans un ordinateur ; il était codé sur 7 bits et chaque caractère était représenté par un nombre compris entre 0 et 127. Cette faible étendue de codage ne permettait pas de représenter les lettres accentuées des pays européens et encore moins les alphabets non européens.
Le passage du codage sur 8 bits a permis d'inclure les lettres accentuées mais sans réelle normalisation au départ : on a vu naître les jeux de caractères de constructeurs (codages Windows, Mac, etc) et les codages régionaux adaptés à la représentation des langues des différentes parties du globe. L'ISO (l'organisme de normalisation international) a fini par normaliser ces codes régionaux dans la norme ISO-8859 ; la norme qui s'applique à l'ouest européen est l'ISO-8859-1 (devenue depuis ISO-8859-15 pour intégrer le signe '€').
La manipulation dans les programmes de ces nombreux codes posant de nombreux problèmes, il a été décidé de créer un code qui permette de gérer tous les caractères de toutes les langues du monde : il s'agit de l'UniCode qui utilise une représentation des caractères sur 4 octets. La plupart des langages de programmation modernes (Java, Python, …) gèrent en interne les caractères avec ce code.
Cependant, les contraintes de volume de stockage conduisent à conserver les codages sur 8 bits (4 fois moins encombrant) pour l'archivage sur disque des documents. Le programme qui lit et interprète le fichier doit donc connaître son encodage pour l'afficher correctement. C'est à cette reconnaissance que servent les définitions vues dans l'introduction.
Outre les codages régionaux, un nouveau codage sur un octet est apparu avec UniCode, il s'agit du code UTF-81) qui tend à devenir le standard d'échange des documents unicode.
En France vous trouverez beaucoup de documents encodés en ISO-8859-1 (ou ISO-8859-15) mais il semble préférable d'utiliser désormais le codage UTF-8 pour la réalisation des pages Web.
Si votre butineur ne reconnaît pas le codage de la page qu'il affiche, vous risquez d'avoir d'horibles gri-gris à la place des caractères accentués :
compléter les liens