spectrasLe 09/09/2013 à 19:06
Faut pas non plus jeter le bébé avec l'eau du bain. En soi l'UTF-8 n'est pas une mauvaise idée.
La mauvaise idée, c'est de le penser compatible. Un changement aussi profond dans l'interprétation qu'il faut faire d'une chaine de caractères.
Concrètement, l'erreur à l'origine de ces problèmes, c'est tous les développeurs qui ont développé en utilisant l'hypothèse qu'une chaîne de caractères et une chaîne d'octets sont identiques. Tant que les deux avaient la même sémantique, ça marchait. L'exemple de python 2 donné par Flan est d'ailleurs édifiant : même en séparant les types, tant qu'on essaie d'assimiler une chaîne d'octets à une châine de caractères, on crée quand même des bugs.
Hélas, le problème est présent dans de nombreux logiciels, sur toutes plateformes.
(en parlant de choix discutables, la possibilité d'avoir plusieurs codages pour le même caractère unicode n'est pas non plus l'idée du siècle)