Martin Sévigny - Frédéric Glorieux - AJLSM

Le texte

Résumé

Unicode.  Un document XML, c'est d'abord du texte (balisé). L'objet ne semble pas poser de problèmes informatiques insurmontables, pourtant, il y a loin entre une suite de bits, d'octets, de nombres en toutes bases, et nos lettres, et les autres alphabets, et les caractères chinois ou égyptiens.

1.1. Les tables de caractères
1.2. Unicode
1.3. Unicode et XML
1.4. UTF Plusieurs "unicodes" ?
1.5. Les entités caractères en XML
1.6. Conclusion Les limites d'Unicode

1) Les tables de caractères

L'usage habituel de son ordinateur personnel ne confronte que rarement au problème du codage des caractères. On demande à ce qu'un fichier s'enregistre tel qu'on le lit, et de ne rien perdre en route. On peut cependant remarquer des différences d'un logiciel à l'autre, tel le graphisme qui n'est pas reconnu partout, des espacements qui changent... Les problèmes commencent franchement lorsque l'on échange des fichiers entre deux systèmes différents (MAC-MS.Windows), et deviennent un vrai casse-tête lorsque cohabitent de nombreuse langues. Internet a définitivement imposé le besoin d'une norme internationale ou le ç français a le même code partout.

2) Unicode

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 plus de 40 000 aujourd'hui. 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.

3) 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.

4) UTF Plusieurs "unicodes" ?

Unicode est unique, mais il peut être enregistré de plusieurs manières. On comprendra que les milliers de caractères chinois prendront chacun plus de place que les lettres latines, d'où des optimisations possibles.

L'encodage nommé UTF-8 consiste à encoder les caractères ASCII sur un octet, puis les autres caractères sur 2, 3, 4, 5 ou 6 octets, sans ambiguïté. Il s'agit d'un encodage intéressant pour le français, car la plupart des caractères 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.

5) 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 34F6 en base hexadécimale (13 558 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.

6) Conclusion 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, les logiciels, les 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, mais peu d'applications l'utilisent.

Concernant les polices, il n'existe pas de police universelle contenant tous les caractères définis dans Unicode 3 et disponible publiquement. La police la plus intéressante est probablement Arial Unicode MS, qui contient tous les caractères d'Unicode 2.1 et que l'on peut télécharger sur le site de Microsoft.

Unicode - quelques références

[unicode-ref] Unicode. <http://www.unicode.org/> . Le site Web du consortium Unicode, avec les tables de caractères et beaucoup d'informations techniques sur la norme.
[bottin] Unicode, démonstration en français . <http://www.culture.gouv.fr/edm/> . Un site Web en français, Écritures du monde, réalisé par Michel Bottin et ses collaborateurs au ministère de la culture. Ce site présente les différentes systèmes d'écriture dans le monde et constitue un bel exemple de l'utilisation d'Unicode sur le Web.
[woods] Alan Wood's Unicode Resources. <http://www.hclrss.demon.co.uk/unicode/> . Le site Alan Wood's Unicode Resources, en anglais, mais qui constitue un inépuisable réservoir d'information à propos d'Unicode. Sont particulièrement utiles les exemples de caractères, les informations sur le support logiciel et sur les polices.
[unicode-ms] Microsoft et unicode. <http://officeupdate.microsoft.com/2000/downloadDetails/aruniupd.htm> . <http://www.microsoft.com/typography/property/property.htm> . Quelques ressources du géant mondial.