Accueil > Les documents XML


Unicode

Dernière modification : 2002/09/10 16:04:35     Contact : Martin Sévigny

Unicode est un standard définissant un jeu de caractères. Sans entrer dans les détails, mentionnons que l'Unicode de base permet le codage des caractères sur 2 octets, soit plus de 65 000 caractères différents. En plus des techniques de codage, Unicode définit un jeu de caractères qui en compte plusieurs dizaines de milliers (la version actuelle d'Unicode est la 3.2 et elle définit plus de 95 000 caractères). Tous les caractères des langues vivantes s'y retrouvent, de même que certaines langues mortes et des symboles.

Unicode ne règle pas tous les problèmes de multilinguisme, mais il constitue la meilleure solution que l'on connaisse actuellement.

Pour en savoir plus sur Unicode, voici quelques sites à consulter:

Unicode et XML

Par défaut, les documents XML sont des documents texte dont le jeu de caractères est l'Unicode. En quelque sorte, il y a un seul jeu de caractères standard pour l'XML, et ce jeu de caractères est le plus important que l'on connaisse. D'autres jeux de caractères (comme l'ISO Latin 1) peuvent être utilisés, mais une application XML n'est pas obligée de les supporter, et donc de les traiter correctement.

Cette intime association entre Unicode et XML fait en sorte que les systèmes d'information basés sur XML peuvent gérer (en théorie) des documents ou des informations de toutes les langues, y compris dans les mêmes documents.

La question de l'encodage

Il existe plusieurs façons d'encoder des caractères Unicode dans des fichiers informatiques, on parlera de différents encodages.

L'encodage nommé UTF-8 consiste à encoder les caractères ASCII sur un octet, puis les autres caractères sur 2, 3, ou 4 octets, sans ambiguïté. Il s'agit d'un encodage intéressant pour le français, car la plupart des caractèrés pourront s'écrire sur un seul octet (les lettres non accentuées), alors que les autres sont définis de telle sorte qu'en UTF-8 ils sont codés sur deux octets seulement.

L'encodage nommé UTF-16 consiste à représenter tous les caractères sur deux octets. Cet encodage est plus efficace pour des documents en langues asiatiques par exemple, mais inefficace pour des documents en langues européennes.

Les entités caractères en XML

Dans un fichier XML, les caractères peuvent être directement encodés en Unicode, et normalement les outils le font automatiquement. Toutefois, il est possible d'inscrire tout caractère Unicode à l'aide des entités caractères, qui prennent la forme suivante :

丵

Dans ce cas, il s'agit du caractère qui occupe la position 4E35 en base hexadécimale (20 021 en base décimale) dans le jeu de caractères Unicode. Il s'agit de ce caractère : . Par ailleurs, on peut aussi utiliser cette technique :

丵

Il s'agit exactement du même caractère, mais cette fois indiqué en base décimale. C'est le 'x' qui suit le '#' qui indique la base hexadécimale.

Les limites d'Unicode

Le standard Unicode est intéressant, mais le problème réside dans le support Unicode que l'on trouve dans les systèmes d'exploitation, logiciels et polices.

Au niveau des systèmes d'exploitation, les versions récentes de Windows supportent Unicode, de même que plusieurs logiciels récents, dont la suite Office. Sur MacOS, Unicode est supporté depuis la version 8.5 et bien sûr en OS-X. Les systèmes UNIX/Linux récents supportent en général très bien Unicode.