Parlez-vous l’Unicode ? : lexique

Pour parler et comprendre l’Unicode, quelques pré-requis sont nécessaires. Les définitions données ici permettront de faire ses premiers pas dans Unicode sans avoir l’impression d’être perdu dans une jungle de termes barbares ou étranges. Il s’agit en effet pour la plupart de substantifs qui existent dans la langue française courante (dans l’univers de la typographie par exemple), mais dans des acceptions moins techniques. C’est pourquoi il est préférable de préciser quelques nuances de sens dans le contexte d’Unicode au préalable, sans toutefois entrer dans les détails.

Les termes au sens proche mais qu’il convient de ne pas confondre sont expliqués les uns à la suite des autres : ce lexique suit donc plutôt la logique de groupements d’idées et non le traditionnel ordre alphabétique.

Nous nous sommes beaucoup inspirés de l’article d’Yves Desrichard dans le n° 3 du BBF de 2007, notamment pour les définitions proposées autour de la notion de «caractère», ainsi que de l’article de Philippe Chevrant-Breton dans  ce même numéro pour les définitions autour de la notion de « translittération ».

◊ ◊ ◊ ◊ ◊ ◊

Caractère : le plus petit composant du langage écrit ayant une valeur sémantique (d’après la définition donnée par le consortium Unicode : « the smallest component of written language that has semantic value »).

Glyphe : forme sous laquelle un caractère apparaît sur un support. Un glyphe peut donc représenter plusieurs caractères et inversement.

Codage : attribution d’une valeur lisible par un ordinateur (binaire) à chaque caractère.

Multitude de glyphes possibles pour les mêmes  caractères "a" et "A"

Multitude de glyphes possibles pour les mêmes caractères « a » et « A ».

– Concernant les « jeux de caractères »:

Jeu de caractères : Association entre un répertoire de caractères et les codages correspondants.

Répertoire de caractères : liste présentant un glyphe et un nom pour chaque caractère, avec éventuellement certaines caractéristiques d’utilisation du jeu de caractères correspondant, par rapport à lui.

◊ ◊ ◊ ◊ ◊ ◊

– A propos des « polices »:

Polices : « ensembles de glyphes pour un jeu de caractères donné ».

Fontes : sous-ensembles des polices qui constituent des « assortiments » de caractères dans une taille et des attributs particuliers (gras, italique, souligné). Différentes fontes peuvent ainsi correspondre à chaque police.

Dans la pratique informatique, à la distinction entre fontes et polices, désormais peu pertinente (en raison des modes particuliers de constitution des caractères qui varient selon la taille et la nature de l’attribut choisi), se substitue celle suivant le mode d’élaboration des glyphes, par la machine.

◊ ◊ ◊ ◊ ◊ ◊

Directionnalité : Unicode présente la particularité de définir, en même temps qu’il code les caractères, le sens dans lequel s’écrit et se lit la langue. C’est un algorithme bidirectionnel (d’où le terme de « classe bidi ») qui précise la façon dont un texte en arabe ou en hébreu doit s’afficher. On a ainsi un type directionnel « droite-à-gauche fort » pour les lettres arabes, syriaques, hébraïques… alors que les langues à caractères latins ou autres ont un type directionnel « gauche-à-droite fort ». Tous les caractères dits « neutres » (ponctuation, chiffres, espaces) ont une directionnalité qui varie : ils prennent celle des caractères qui les entourent ou, en cas de tension, celle qui est majoritaire dans le paragraphe où ils se trouvent.

♦ Pour plus d’informations sur la directionnalité, on peut se reporter à une explication de l’algorithme bidi.

◊ ◊ ◊ ◊ ◊ ◊

Autour des notions de « translittération » :

Translittération : opération qui consiste à représenter les caractères d’une écriture alphabétique ou syllabique par ceux d’un alphabet de conversion.

Retranslittération : opération inverse de la précédente, pour « reconstituer le texte translittéré sous sa forme originale ».

Transcription : opération qui consiste « à noter la prononciation d’une langue donnée au moyen du système de signes d’une langue de conversion », en respectant les conventions orthographiques de cette dernière. Elle est la seule méthode utilisable pour la représentation de systèmes « non entièrement alphabétiques ou syllabiques et pour toutes les écritures idéographiques », le chinois notamment.

Romanisation : Conversion d’écritures non latines en alphabet latin, par transcription, translittération, ou par un système mixte.

Unicode pour les Nuls

Qui n’a jamais reçu un message électronique illisible ou essayé en vain d’afficher en caractères lisibles une page Internet où tous les caractères accentués sont remplacés par d’étranges combinaisons (comme « Ã© » pour les accents aigus), dans le meilleur des cas, quand des rectangles vides ne remplacent pas bonnement et simplement des caractères ou des symboles ?

Comment ça marche ?

Commençons par le commencement… et les principes fondamentaux de l’informatique. Toutes les données que nous voyons s’afficher sur les écrans de nos ordinateurs sont en réalité le résultat d’un codage en chiffres. L’informatique est basée sur le concept de langage binaire. Chaque chiffre binaire est appelé bit, un octet regroupant 8 bits. Aujourd’hui, la quasi totalité des microprocesseurs – les composants d’ordinateur exécutant les instructions – travaillent avec des mots de 8, 16, 32 ou 64 bits. Avec 2 bits, on peut avoir quatre « états » différents : 00, 01, 10, 11.  Avec 3 bits, huit états différents : 000, 001, 010, 011, 100, 101, 110, 111. Avec 8 bits, on aura 256 possibilités.

Un caractère est donc codé par une série de « 0 » ou de « 1 ».  Ainsi, en supposant des caractères définis sur un octet, la suite : 0111 0001 va définir la lettre « q » dans le codage ASCII sur 8 bits. C’est ce que l’on appelle le codage binaire du caractère.

Assez souvent, les logiciels de nos ordinateurs sont paramétrés sur un codage de 8 bits, c’est pour cela que l’on voit parfois apparaître dans les options de paramétrage le champ « UTF 8 » (pour UCS Transformation Format). C’est un des formats de codage les plus courants, qui gère tous les caractères Unicode dans les systèmes ASCII préexistants. Comme Monsieur Jourdain, nous faisons donc quotidiennement de l’Unicode sans le savoir, tout simplement parce que la mention « Unicode » se cache sous le pseudo d’ « UTF 8 » ! Deux autres formes de codage d’Unicode en UTF existent : UTF 32 et UTF 16. Par ailleurs, le standard Unicode se conforme à la norme ISO/CEI 1046 pour affecter (donner un numéro) et nommer les caractères.

On peut définir un jeu de caractères comme la combinaison entre un répertoire de caractères et les codages correspondants. Un répertoire de caractères, c’est une liste comportant un glyphe pour chaque caractère, un nom pour chaque caractère et éventuellement certaines caractéristiques d’utilisation de ce jeu de caractères par rapport au répertoire.

Avant l’invention d’Unicode, des centaines de systèmes de codage de caractères ont été créés, souvent incompatibles entre eux. Lorsque mon ordinateur affiche de manière altérée des caractères accentués, c’est qu’il utilise pour lire l’information un autre standard d’encodage que celui avec lequel elle a été codée.

Unicode et ses apports

Le standard Unicode constitue une révolution car il spécifie 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. Son originalité réside dans le fait qu’il prend en charge à la fois la gestion du codage, la directionnalité (c’est-à-dire qu’il gère aussi bien les langues s’écrivant de gauche à droite que celles, comme l’hébreu, s’écrivant de droite à gauche) et les caractères écrits de façon différente selon leur position dans le mot (en arabe, par exemple). Unicode définit des conversions exactes entre son répertoire et d’autres normes largement répandues.

D’un point de vue économique, Unicode permet donc aux développeurs et vendeurs de logiciels informatique de viser un marché international, puisque les métadonnées, grâce à Unicode, deviennent lisibles partout, car tous les caractères utilisés dans toutes les langues du monde peuvent être codés en Unicode.

Unicode, c’est donc l’universalité, l’unicité, l’efficacité, la stabilité, la convertibilité.

« Abece : Dorbs un rutala myusu barnim / pa I. Ritina paraugim sast. latgalisu skolu darbiniki; - Pleskava, 1920 ».

♦ Pour aller plus loin :

Pour en savoir plus sur les applications pratiques d’Unicode, consulter sur notre blog les billets sur les claviers virtuels et les applications pratiques d’Unicode sur Internet.

Un vaste répertoire en ligne de fontes Unicode. Consulté le 23 juin 2010.

Une base de données des glyphes spécifiques aux différentes langues utilisant alphabet latin ou cyrillique. Consulté le 23 juin 2010.

Le site personnel d’Alan Wood, avec pages de tests, conseils et liens vers les polices permettant d’afficher les blocs d’Unicode. Consulté le 23 juin 2010.

Un site proposant les images de l’ensemble des caractères d’Unicode. Consulté le 23 juin 2010.

L’article de Wikipédia sur Unicode. [en ligne] Consulté le 23 juin 2010.

ANDRIES, Patrick. « Introduction à Unicode et à l’ISO 10646 ». Document numérique, 2002/3-4, Volume 6, p. 51-88. [en ligne] Consulté le 05 juin 2010.

ANDRIES, Patrick. « Unicode ». Encyclopédie Larousse en ligne, 15 avril 2008. [en ligne] Consulté le 6 juin 2010.

ANDRIES, Patrick. Unicode 5.O en pratique : codage des caractères et internationalisation des logiciels et des documents. Paris, Dunod, 2008, 399 p.

CONSORTIUM UNICODE. The Unicode Standard, Version 5.0. Addison-Wesley, Boston, 2007, 1 472 p.

DESRICHARD, Yves. « Petit précis de codage des caractères ». BBF, 2007, n° 3, p. 22-27. [en ligne] Consulté le 16 juin 2010.