>> Accueil > Le coin du déve... > Généralités sur UTF-8
   
Prévisions Météo iGoogle
Gadget iGoogle Meteo
Add to iGoogle





  
Généralités sur UTF-8


Voir aussi : Convertir un site vers UTF-8


Généralités


Tout développeur de sitedoit considérer l'encodage. Il existe plusieurs normes d'encodage comme il existe différents alphabets. En Europe, l'encodage le plus utilisé est l'ISO-8859. Cet encodage convient parfaitement pour afficher des caractères Européens. Pour des langues d'un autre continent, le rendu ne sera pas possible.
En effet, lanorme ISO-8859-1 (Latin1 ou Europe occidental ou encore Europe del'ouest) code les caractères sur 1 octet et permet l'affichage de 191caractères contrairement à UTF-8 qui lui permet de coder les caractères sur 4 octets et prend donc en charge un nombre plus important de caractères.
 

Quel est l'intérêt de l'UTF-8 ?

Le grand intérêt de l'UTF-8 est bien sûr la compatibilité pour l'affichage de caractères et la portabilité du code. 
Lecodage natif de nos ordinateur en occident est le Latin1. Voici unexemple simple. Je souhaite afficher un message en chinois en UTF-8 :

より正式にはISO/IEC 8859-1)はISO/IEC8859の第一部であり、ラテンアルファベットの文字コード標準である。よりくだけた言い方ではLatin-1と呼ばれる。最初はISOによって開発されたが、後にISOとIECによって合同で保守されている。この標準に追加の文字を(16進符号0x00-0x1Fの「C0領域」と、0x80-0x9F「C1領域」の範囲に)割り当てたものは、2つの広く使われているキャラクタセットの基となる。ISO-8859-1(余分なハイフンに注意)とWindows-1252と呼ばれるものである。2004年6月、8ビット符号化文字集合の整備を担当するISO/IECの作業部会は、国際符号化文字集合 (UCS) とUnicodeの開発に専念するために解散し、ISO 8859-1を含むすべてのISO8859の整備を中止した。コンピュータアプリケーションにおいては、(UTF-8やUTF-16のような)完全なUCSサポートを提供するエンコーディングが、ISO 8859-1に基づくエンコーディングよりもますます多く使われるようになりつつある。

Tout les caractères sont représentés. Voici maintenant un affichage de ce même message en ISO-8859 (Latin1) :

??????ISO/IEC8859-1)?ISO/IEC8859?????????????????????????????????????????Latin-1?????????ISO?????????????ISO?IEC??????????????????????????(16???0x00-0x1F??C0?????0x80-0x9F?C1???????)?????????2????????????????????????ISO-8859-1(??????????)?Windows-1252???????????2004?6??8??????????????????ISO/IEC????????????????(UCS)?Unicode???????????????ISO 8859-1???????ISO8859?????????????????????????????(UTF-8?UTF-16????)???UCS???????????????????ISO8859-1???????????????????????????????????

Les caractères de la langue chinoise ne sont pas représentés. Le message est donc illisible.

Pour résumer :

L'avantaged'utiliser UTF-8 vous l'avez compris est la compatibilité. Avec UTF-8 vous pouvez affichern'importe quel caractère de n'importe quelle langue tandis qu'en Latin1vous êtes limités aux caractères Européens.
En utilisant UTF-8, vous utiliser un standard. Vous éviter ainsi les éventuels problèmes de rendu ou d'utilisation de framework.

Globalement, uninconvénient de l'UTF-8 pourrait être le stockage. Un caractère stockéen UTF-8 (4 octets) occupe plus de place qu'un caractère stocké enLatin1 (1octet). Avec nos possibilités de stockage et la baisse desprix des supports de stockages à l'heure d'aujourd'hui ce point restediscutable.

Quelles sont les questions à se poser avant d'utiliser UTF-8 ?

Les questions à se poser sont les suivantes :

1. Est ce un site destiné à un public francophone ou doit-il être compatible avec d'autres langues ?
Si votre site est francophone ou européen uniquement vous pouvez conserver Latin1. Sinon il est conseillé d'utiliser UTF8

2. Quel encodage est utilisé chez l'hébergeur et est-il possible de le modifier ?
Lejeux de caractère utilisé par défaut sur Apache est l'ISO-8859-1. Cettevaleur ne tient pas compte des balises <meta> présentes dansvotre code HTML. En règle générale cette valeur peut être modifiée avecun fichier .htaccess.

3. Allez vous intégrer des framework ou d'autres modules ?
Sivous êtes amenés à utiliser un framework (Dojo par exemple), sachez quebien  souvent celui ci sera codé en UTF-8 pour les raisons decompatibilités citées plus haut. Il conviendra donc d'utiliser le mêmeencodage sur votre site pour éviter d'avoir des surprises avecl'affichage des caractères.

Danstout les cas, si vous commencez un projet web et que vous n'êtes pascontraint d'utiliser Latin1, je vous conseille UTF8.


   



<< Tutoriel : Créer un rectangle arrondi avec PHP et CSSZone PHP >>

Haut de page
Lecoindunet.com
Accueil - Mentions Légales - Contact - S'inscrire - Plan du site -