vendredi 11 décembre 2009

Encoding et alphabets internationaux : comprendre et debugger (1ere partie)

Lors de l'affichage de pages avec des mots dans des alphabets différents il peux arriver que des problèmes d'affichages apparaissent avec des � et des é

Dans le cas de Gisgraphy (exemple pour Pékin), j'ai voulu vérifier que tout s'affiche correctement et que ce qui est affiché correspond bien à l'équivalent ASCII.

Je me suis donc rendu sur cette page et j'ai testé 北京, ce qui m'a donne 'bei jing'.ouah ça marche! et mon navigateur affiche le japonais! essayons en arabe avec بكين , cela me donne "bkyn" qui se rapproche de Beijing et Pékin en phonétique, et là aussi ça s'affiche correctement.

Cela m'a donné l'idée d'un post pour démystifier l'encoding par une suite de questions-réponses. (Finalement je le ferai en deux posts car c'est un peu long, et je risque de perdre et décourager pas mal de lecteurs si je n'en fais qu'un). Le premier expliquera ce qu'est l'encoding :

  • Qu'est ce qu'Unicode ?
  • Qu'est-ce que l'encoding, le BOM, le Little et le Big Endian
  • Quel est le meilleur encoding ?
  • Comment fonctionne une police de caractère ?
  • Comment gérer les sens d'écriture différents (par exemple, l'arabe qui s'écrit de droite à gauche)

Le second expliquera comment résoudre les problèmes fréquents avec de cas concrets et des extraits de code :

  • Comment gérer l'encoding dans un environnement web en java (Java, Apache, Tomcat, ModJK, base de données, navigateurs)
  • Comment gérer et débugger des problèmes d'encoding en java

Après ces deux posts vous ne devriez plus jamais voir ça : � sur vos sites, ou si c'est le cas vous saurez comment résoudre le problème :)

Lire la suite...