Plus simple : tu peux utiliser l'utf-8, qui comporte tous les caractères de la terre entière jusqu'au klingon, ce qui t'affranchit d'utiliser des entités.

C'est même parfois obligatoire : si tu applique une transformation XSLT sur un document XHTML, le fait d'avoir des entités peut rendre impossible la transformation, à cause d'entités non déclarées. Et le seul moyen de les déclarer, c'est de valider le document, ce qui veut dire téléchargement de la DTD, donc des scripts qui approchent un temps d'éxécution de l'ordre de la dizaine de secondes Smiley bawling
Administrateur
Tu es sûr que UTF-8 contient tous les caractères de la Terre? Smiley rolleyes (sinon à quoi ça sert qu'UTF-16 il se décarcasse? Smiley cligne (ou -32 (ou ...)))

EDIT: suffisamment pour 99,9% des humains de cette Terre ça ok par contre Smiley smile )
Modifié par Felipe (28 Sep 2005 - 23:40)
Felipe a écrit :
Tu es sûr que UTF-8 contient tous les caractères de la Terre? Smiley rolleyes (sinon à quoi ça sert qu'UTF-16 il se décarcasse? Smiley cligne (ou -32 (ou ...)))


UTF-8 (comme ses cousins utf-*) n’est qu’un encodage du jeu de caractères Unicode.
Unicode contient effectivement potentiellement tous les caractères utilisés sur terre et il y a encore largement de la place pour d’éventuels jeux de caractères artificiels ou extraterrestres (on sait jamais).
Felipe a écrit :
Tu es sûr que UTF-8 contient tous les caractères de la Terre? Smiley rolleyes (sinon à quoi ça sert qu'UTF-16 il se décarcasse? Smiley cligne (ou -32 (ou ...)))

EDIT: suffisamment pour 99,9% des humains de cette Terre ça ok par contre Smiley smile )

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)