Un problème d'encodage, peut-être ?

jeudi 6 octobre 2005

Quelques informations utiles sur l'encodage, les charsets et les malencontreux hiéroglyphes qui apparaissent parfois dans nos textes !

Les phrases et les mots qui apparaissent à l’écran sont composés de caractères. Il existe des caractères «normaux» (a,b,c,d…), des caractères accentués (é,è,à,ñ…), des caractères de ponctuation et des caractères spéciaux (tels que le symbole euro).

Image 1

Les ordinateurs (quel que soit le système d’exploitation, windows, mac, linux ou autre) gèrent l’affichage de ces caractères de manière binaire, en associant un code chiffré à chaque caractère (autrement dit, une série de 0 et de 1). La correspondance entre le code chiffré et le caractère tel qu’il apparaît à l’écran se fait par l’intermédiaire d’une table d’encodage, ou charset.

Malheureusement, il existe de multiples charsets. Le charset de base (ANSI) est anglo-saxon, il ne prend pas en compte les caractères accentués, et il est donc à exclure pour le français. Il existe également des charset pour les langues qui n’ont pas un alphabet latin: chinois, japonais, coréen, arabe, hébreux, etc. Et il existe une multitude de charsets, qui ne présentent que de minimes différentes les une entre les autres, pour la gestion des langues européennes.

Image 2

Si un mauvais charset est appliqué à un bloc de texte, la conséquence pour l’affichage à l’écran des caractères non pris en compte sera désastreuse: ils seront remplacés par des espaces vides, d’autres caractères (bien souvent un point d’interrogation), ou des symboles vraiment bizarres venus d’une autre planète (si, si, ça arrive).

Image 3

Il faut donc une correspondance exacte entre:
- le charset avec lequel a été écrit le texte.
- le charset avec lequel est affiché le texte.

Sur Internet

Tous les navigateurs gèrent différents charsets. Cependant, pour les navigateurs en français, le charset par défaut est bien Latin 1. S’il a été modifié pour quelque raison que ce soit, vous devez le rétablir à sa valeur initiale.

  • Pour modifier le charset de Firefox, rendez-vous dans le menu Affichage -> Encodage des caractères. Choisissez Occidental ISO-8859-1.
  • Pour modifier le charset de InternetExplorer, rendez-vous dans le menu Affichage -> Codage (-> Plus) -> Europe Occidentale (ISO).
  • Pour les autres navigateurs, la procèdure est semblable, même si le nom des menus peut changer.

Attention, sur Mac le charset par défaut n’est pas ISO Latin 1 mais Mac OS Roman. Il s’agit d’un charset basé sur ISO Latin 1 mais comportant des caractères supplémentaires (tels que la pomme Apple). Vérifiez que vous utilisez, pour votre navigateur, le charset générique et non pas le charset natif Mac.

En règle générale les navigateurs gèrent l’encodage de manière automatique. C’est-à-dire que vous n’avez pas à spécifier manuellement le charset à utiliser, le navigateur sait le détecter. Néanmoins, cette détection échoue parfois, pour une raison ou pour une autre (surtout avec IE ;-)

Pour savoir quel est le charset utilisé sur une page Web, afficher le code source de cette page (habituellement clic-droit dans la page, et un menu déroulant offrant cette possibilité s’ouvrira) et chercher une ligne du type:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">