Felipe a écrit :
Tu es sûr que UTF-8 contient tous les caractères de la Terre? (sinon à quoi ça sert qu'UTF-16 il se décarcasse? (ou -32 (ou ...)))
EDIT: suffisamment pour 99,9% des humains de cette Terre ça ok par contre )
Ce sont les mêmes. C'est juste après le stockage qui change :
utf-8 utilise entre 8 et 4 octets par caractères. Ainsi, tous les caractères qu'on avait entre 0 et 127 dans les tables ASCII sont codés sur un seul octet, ce qui permet de conserver la même taille de fichier par rapport à l'ancienne. Après, nos caractères accentués, par exemple, vont être codé sur 2, 3 ou 4 octets, pareils pour tous les caractères bizarroïdes...
Ensuite t'as l'utf-16, qui code sur minimum 2 octets, mais ça monte aussi à 3 ou 4. Le .NET FrameWork, par exemple, utilise de l'utf-16 pour les chaînes de caractères.
Viens enfin l'utf-32, où tous les caractères sont codés en 4 octets, ni plus ni moins, c'est un codage à taille fixe.
D'un point de vue programmation, l'utf-32 est le plus facile à développer : tous les caractères sont codés sur le même nombre d'octets. Après pour les deux autres, faut utiliser des octets spéciaux pour indiquer sur combien d'octets sera codé le caractère suivant.... Le premier doit être plus rapide, les deux autres plus légers.
Donc pour le web, le mieux est l'utf-8, vu qu'on utilise beaucoup les caractères 0-127, donc fichiers plus légers...
Plus d'informations chez
Joel on Software (fr)