Encodage des pages Web

Introduction

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.

Un peu d'histoire

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.

Quels codages utiliser

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.

Un petit exemple

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 : FIXME compléter les liens

  • affichages corrects : une page en iso-88591, une page en utf-8,
  • affichages incorrects : une page en iso (déclarée en utf), une page en utf (déclarée en iso).
1) en fait c'est un codage à octets multiples qui utilise un octet pour les caractères de base et une séquence d'octets pour les autres comme les lettres accentuées
web-base-encodage.txt · Dernière modification: 2007/09/23 06:30 (édition externe)

Informations sur la pratique du Wiki -- Mention légale
Copyright © 2005-07 UBS - IUT de Vannes - Dept Informatique
Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed