Charset et encodage : ISO-8859-1 ou UTF-8 ?
Par Méthylbro le mercredi 20 mai 2009, 16:57 - Développement - Lien permanent
Récemment on a pu me faire diverses critiques provenant du fait que j’utilise le jeu de caractères UTF-8. Ajoutez à cela le constat que j’ai déjà fait à de nombreuses reprises en observant mes stagiaires et/ou mes collègues de bureaux j’en ai déduit une chose : les gens ignorent tout sur les différents encodage des caractères !
Dans ce billet ; je ne vais pas faire un historique précis sur les différents encodage ou leurs histoires car bien d’autres articles en parlent déjà bien mieux que moi. Je vais juste revenir rapidement sur ce que sont ces si mystérieux « charset » et sur les raison qui font que je préfère l’emploi d’UTF-8.

Le premier point qu’il faut bien saisir ; c’est ce qu’est réellement un jeu de caractères, ce fameux charset. Comme vous le savez, en informatique le dénominateur commun de toute valeur à exprimer c’est le bit (0 ou 1). Bits que par la suite on associe par paquet de 8 pour pouvoir exprimer des valeurs plus complexe, c’est ce que l’on appelle des octets. Chaque octet permet au final de représenter une valeur comprise entre 0 et 255.
Maintenant si vous souhaitez représenter un ensemble de caractères, mettons l’alphabet complet incluant majuscules et minuscules il va vous falloir définir un tableau. Dans lequel vous allez dire que le caractère « a » est représenté par la valeur 1 et ainsi de suite jusqu'à 26 pour « z » et vous allez reprendre à 27 pour le caractère « A » jusqu'à 54 pour « Z », etc etc. Vous allez donc utiliser un tableau, tableau que l’on appelle « Jeu de caractères » ou bien « charset » en anglais.
Historiquement le premier charset fut la célèbre table ASCII. Je ne vais pas m’étendre dans les détails à sont sujet retenez simplement que cette table est devenue rapidement obsolète. En grande partie du à la multiplication des caractères à représenter découlant de l’internationalisation de l’informatique.
Pour répondre à ces nouveaux besoins nés après l’arrivée de toujours plus de nouveaux caractères (qu’ils proviennent de l’alphabet latin, grec ou encore des alphabets exotique de nos amis asiatiques) de nouveaux charset ont émergés : ISO-8859-1, UCS-2 … Le plus efficace pour répondre à cette problématique étant UTF-8. En jouant habilement avec les bits dont je parle plus haut, UTF-8 permet de représenter un nombre exponentiel de caractères.
Comme vous le savez, la compatibilité et l’accessibilité sont des éléments qui composent le saint graal dont chaque développeur web est en quête. L’adoption d’UTF-8, jeu de caractères universel par excellence permet d’améliorer la compatibilité des sites au niveau international.
Pour approfondir le sujet :
- http://fr.wikipedia.org/wiki/ISO_8859
- http://fr.wikipedia.org/wiki/UTF8
- http://openweb.eu.org/articles/jeux_caracteres/
- http://openweb.eu.org/articles/changer_pour_utf8
- http://blog-de-buh.pixelparpixel.com/?iso-8859-1-ou-utf-8-lequel-choisir
- http://www.jarodxxx.com/index.php?post/2009/04/30/L-encodage-UTF-8-avec-BOM-fait-apparaitre-un-%C3%AF%C2%BB%C2%BF-en-haut-de-page
Commentaires