vendredi 16 janvier 2015

L'encoding en Python... une bonne fois pour toute

Excellent article --incontournable-- disponible sur le blog de Sam & Max.
Unicode - un petit coup de gueule 
Tout le monde ne jure que par l'Unicode et je dois bien admettre que cela a facilité les échanges sur le net... mais a bien y penser, je ne suis pas certain que cela soit pour un mieux (globalement).
Cela à ajouté un sacré niveau de complexité sur un des éléments de base de la programmation (les chaines de caractères... et fichiers).
Dire que je me retrouve à se gratter la tête pour essayer de comprendre pourquoi je n'arrive pas à imprimer un "é" sur mon imprimante HP en la contactant par socket pour imprimer du PCL en direct.
A oui mais grâce à UNICODE je dois:
  • Penser à l'encodage de mon OS
  • Pense à l'encodage des code python avec mon éditeur de texte (afr!)
  • Et celui de tes strings (python 2.7 ou 3)... string ou unicode string?
  • etc
Bref, cela devient un usine à gaz pour les méninges et tout cela pour un simple "é".
C'est là que je trouve que nous n'avons pas gagné grand chose avec unicode... les choses simple et les fondations devraient rester "simple".

 

1 commentaire:

Anonyme a dit…

Avant l'unicode, vous deviez faire tout ça aussi, sauf qu'il n'y avait pas de standard central. La console windows en CP850, la fichier en latin 1, les docs words en CP1552....

Et après, vous lisez une page web turque en Latin-5. Une espagnole...

Je sais pas si vous vous souvenez, mais dans les années 2000 on voyait souvent des ? sur les pages web.

C'est parce que le problème de l'encoding a toujours été ça... Un problème.

L'unicode ne rajoute pas de problème, il en retire, il fournit un point commun, une base de travail. Sans ça, il faut jongler entre 100 formats différents, ou faire comme les américains : tout mettre en ASCII et envoyer les autres se faire mettre :)