Unicode

Un article de SRC Bordeaux.

Unicode est une norme informatique développée par le Consortium Unicode qui définie à tout caractère de n'importe quel système d'écriture de langue un nom et un identifiant numérique, quelle que soit la plate-forme informatique ou le logiciel. La première publication remonte à 1991, il a été développé dans le but de remplacer l'utilisation de pages de code nationales. Aujourd’hui, Unicode classe 1 114 112 caractères, symboles et directives.

Sommaire

Coté technique

Avant Unicode

On sait que les ordinateurs ne comprennent que les nombres, ils codent donc les lettres et tout autres caractères sous forme de nombres consécutifs. Avant la création d’Unicode, il n’existait pas de norme internationale qui donnait à tout caractère un identifiant numérique unique. Par exemple, l’union européenne utilisait plusieurs centaines de systèmes de codage de caractères. Donc aucun système ne couvrait toutes les lettres, les symboles techniques et les signes de ponctuation.

De plus, ces systèmes de codage sont la plupart du temps incompatibles entre eux. Par exemple, deux systèmes peuvent utiliser le même nombre pour deux caractères différents ou inversement, ce qui rend donc la compatibilité impossible. Les ordinateurs et les serveurs sont obligé de supporter plusieurs systèmes de codage de caractères, ce qui crée un risque de corruption des données à chaque transition.

Avec Unicode

Unicode donne un numéro unique pour chaque caractère, quelle que soit la plate-forme, quel que soit le logiciel et quelle que soit la langue .Le standard Unicode a été choisi des entreprises tels que Apple, IBM, HP, Microsoft, Oracle, JustSystem, SAP, Sun, Sybase, Unisys. Unicode est obligatoire pour les standards récents tels que : XML, Java, Javascript, LDAP, CORBA 3.0, WML. Le développement d’Unicode est synchronisé avec celui de la norme ISO/CÉI 10646. Unicode est utilisé dans beaucoup de domaines, comme par exemple : les systèmes d’exploitation, les navigateurs récents. L'apparition du standard Unicode, ainsi que la disponibilité d'outils le gérant, sont les principales faits du développement logiciel. L'incorporation d'Unicode dans les applications client serveur, les applications distribuées et les sites Internet permettent une simplification de l'architecture et une réduction des coûts par rapport à l'utilisation des systèmes de codage traditionnels. Grâce à Unicode, un seul logiciel ou site Internet peut satisfaire simultanément et sans modification les demandes de plusieurs langues, pays et plate-forme. Unicode permet aussi à des logiciels de provenance variée d'échanger des caractères sans pertes de données.

Il faut bien comprendre un principe essentiel : dire qu'Unicode code des caractères revient à dire qu'il attribue un numéro à des symboles. Unicode ne code en revanche pas les descriptions des caractères, les glyphes (la représentation graphique du caractère).

Le partitionnement

Voici un exemple du tableau de partitionnement d’Unicode, le partitionnement complet et à jour d’Unicode peut être trouvé sur leur site officiel.

L'Unicode a été représenté de différentes manières, mais les deux plus communes sont l'UTF (Unicode Transformation Format) et l'UCS (Universal Character Set). Après le terme UTF, suit un nombre indiquant le nombre de bits dans une unité. Dans le cas de l'UCS, il représente le nombre d'octets.

Nous allons maintenant décrire rapidement l’UTF-8 car celui-ci est le plus répandu pour les échanges de textes en Unicode, grâce à ses propriétés (clair, représenté par 8 bits).

UTF-8

UTF-8 est un encodage de caractère à longueur variable et peut utiliser entre 1 et 4 octets par symbole. Le premier octet sert à encoder les symboles ASCII, ceci permet une compatibilité complète avec l'ASCII. Les caractères latins et ASCII sont interchangeables avec l'UTF-8 sans que la taille des données soit beaucoup augmenté, puisque seul le premier octet est utilisé.

Quand choisir UTF-8 ?

UTF-8 permet de travailler dans un environnement multilingue conforme aux standards et universellement reconnu, avec une répétition de donnée relativement faible. L'UTF-8 est le meilleur moyen de transmettre des caractères non ASCII sur Internet, par courrier électronique, IRC ou la plupart des autres moyens de communication, ainsi que pour les applications Unix. Son codage de taille variable lui permet d'être en moyenne moins volumineux dans la mémoire. L'UTF-8 assure aussi une compatibilité avec les manipulations simples de chaînes en ASCII dans les langages de programmation, c’est son principal avantage. Ainsi, les programmes écrits en C peuvent souvent fonctionner sans modification.

Son défaut est le codage de longueur très variable (1 octet pour les points de code assignés aux caractères ASCII/ISO646, 2 à 4octets pour les autres points de code), même s'il est possible de déterminer le début du codage d'un point de code. Aussi, cette transformation est rarement utilisée pour le traitement interne des textes, et on lui préfère souvent l'UTF-16, parfois l'UTF-32.


Pourquoi utiliser Unicode ?


Unicode est donc une norme informatique qui vise à donner à tout caractère de n'importe quel système d'écriture de langue un nom et un identifiant numérique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel. On peut donc parler d’une norme mondiale, alors que précédemment, il y avait des centaines de codages différents à travers le monde, et ceux-ci étaient la plupart du temps incompatibles entre eux.

Utilisé Unicode est une méthode qui permet à l’utilisateur de se « faire comprendre par tout le monde », le problème de compatibilité n’existe plus, par exemple lors de l’envoi d’un mail, vous êtes sur de pouvoir lire celui-ci alors qu’avant, rien n’était moins sur. On peut donc dire qu’Unicode a permit d’énormément développer la communication à grande échelle, la communication mondiale.

Comment utiliser Unicode ?

Quand on parle d’utilisation d’Unicode, il faut bien comprendre que Unicode est une norme et que ce sont les encodages UTF-x que nous utilisons.

Nous allons prendre un exemple pour le démontrer. Lorsque vous créé un page Web, il faut choisir l’encodage de la page, pour utiliser l’UTF-8 il faut donc mettre dans la balise <head>, le ligne de code suivante :

<meta content="text/html; charset=UTF-8" /> Il faut bien sûr ne pas oublier de mettre les caractères sur la page en UTF-8. Soit un « é » s’écrira &ecute ;

Liens



Jonathan Girard