UTF-8*
DIVERS
+ DE 2 ANS
Le 17/02/2005 à 18h40
227 vues
Question d'origine :
Comment coder en unicode UTF-8 le texte suivant :
"Réseaux et Communication"
Merci.
Réponse du Guichet
anonyme
- Département : Équipe du Guichet du Savoir
Le 17/02/2005 à 19h40
Le codage de base est l'ASCII codé sur 7 bits capable de gérer 127 caractères. Ceux-ci sont ceux de la langue anglaise, typiquement tous les caractères alpha-numérique non accentués.
Pour représenter les caractères accentués une extension de l'ASCII (7bits) l'a porté sur 8 bits.
Ainsi 128 nouveaux caractères sont apparus rendant possible la représentation des caractères accentués. Ce jeu de caractères est notamment utilisés pour les langues latines (norme ISO-Latin-n ou ISO-8859-n). Nous avons besoin d'un de ces jeux (ISO-8859-1) pour coder l'ensemble des caractères de notre langue : le français.
(...)
La contrainte des codages de type ASCII provient du fait q'ils sont totalement incompatibles entre eux : il est impossible dans cette situation d'écrire un texte exploitant en même temps des caractères de plusieurs jeux différents.
La norme Unicode a été développée principalement pour pouvoir palier à ce problème : elle contient à elle seule l'ensemble des caractères utilisés dans toutes les langues. Elle est définie dans la norme ISO 10646, qui distingue deux méthodes d'encodage à 16 (2 octets) bits et 32 bits (4 octets) : UCS-2 (16 bits) et UCS-4 (32 bits). UCS-2 étant codé sur 16 bits est capable de géré (2^16)^2 = 65536 caractères alors que UCS-4 codé sur 32 bits gère (2^32)^2 = 4 294 967 296 caractères.
Un inconvénient et non des moindres à l'Unicode est que la norme préserve la taille d'encodage de chaque caractères, ainsi un texte en français est en gros 2 fois plus important en unicode que le même texte dans son équivalent ASCII. Par contre un texte écrit en japonais sera de taille équivalente s'il est écrit avec le jeu Unicode ou le jeu JIS (jeu propre au japonais).
La transformation UTF-8 (UCS Transformation format 8-Bits) règle ce problème en fournissant une méthode d'encodage variable entre 1 et 6 octets. Dans ce jeu, les 127 caractères de l'ASCII (7bits) sont codés sur 1 octet, la plupart des caractères non-idéographiques sont codés sur 2 octets et le reste des caractères Unicode sont codés sur 3 octets (le premier octet indique le nombre d’octets sur lesquels le caractère est codé). Ainsi UTF-8 fourni une méthode bien plus légère que Unicode : la taille du texte variera en fonction des caractères utilisés.
Typiquement dans une page Web classique, vous pouvez utiliser l'entête suivante pour pouvoir utiliser la transformation UTF-8 dans la page :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Avec ASP.NET, on pourra utiliser le codage UTF-8 en le spécifiant en entête de la page de la manière suivante :
<@ Page Culture="es-ES" ResponseEncoding="utf-8" %>
Toutes les réponses générées vers le client seront encodés en UTF-8.
Remarquez que dans l'exemple ci avant, nous avons également imposer à la page la culture espagnole, qui devient (pour cette page) la valeur par défaut de CultureInfo.CurrentCulture :
lunes, 18 de marzo de 2002 10:59:46
La culture de manière plus générale peut être fixée plus globalement au niveau d'une application.
<configuration>
<system.web>
<globalization
ResponseEncoding="utf-8"
culture="en-US"
uiCulture="de-DE"
/>
</system.web>
</configuration>
source : Asp-magazine
Vous trouverez par ailleurs de nombreux résultats sur Google avec les termes utf-8 dont de nombreux forums spécialisés.
DANS NOS COLLECTIONS :
Ça pourrait vous intéresser :
Commentaires 0
Connectez-vous pour pouvoir commenter.
Se connecter