Carte heuristique autour d’Unicode

Cette carte a pour vocation de présenter sous forme graphique toutes les ressources que l’on peut mobiliser sur le Web à propos d’Unicode (et plus particulièrement à propos d’Unicode en bibliothèque).

Chaque branche principale privilégie une approche et des besoins d’utilisateurs différents :

Se renseigner sur Unicode recense des définitions générales de premier niveau et des ressources bibliographiques sur la question ;

Utiliser Unicode décline les outils nécessaires à la saisie ou à la lecture de textes dans un autre alphabet, tant pour les usagers des bibliothèques ou le grand public que pour les professionnels ayant à cataloguer des documents en caractères non latins ;

– Enfin, Quelles ressources pour quel alphabet vous offre un panorama des outils classés par langues ou alphabets non latin (asiatique, cyrillique, arabe et grec principalement).

Cliquez sur l’image pour ouvrir la carte et naviguer dans l’arborescence dynamique !

Carte heuristique sur Unicode en bibliothèque

Panorama des ressources recensées autour d'Unicode

Petite légende à l’intention des lecteurs qui ne sont pas familiers des cartes heuristiques :

– En cliquant sur les + et les placés aux embranchements, vous pouvez à l’envi naviguer dans l’arborescence et déployer plus ou moins chaque branche ;

– Une petite flèche  en haut à droite des bulles de la carte signifie qu’un lien actif vers un site ou une ressource en ligne prolonge la branche de la carte sur le Web ;

– Une petite « fiche » jaune placée dans la bulle ouvre une note explicative quand le curseur de la souris glisse dessus ;

– Un petit trombone dans une bulle indique qu’un document y est attaché.

Unicode – Un historique

Unicode se présente comme l’aboutissement et l’ultime unification d’une réflexion ancienne sur les caractères et leur codage.

Le codage des caractères est fondé sur la mise en correspondance d’un code et d’un caractère. Les premières applications télégraphiques de transmission à distance de caractères d’écriture (Chappe 1793, Morse 1844) utilisèrent des codages conventionnels. Le premier jeu de caractères au sens moderne fut élaboré pour le Télex : basé sur 6 bits, il permettait donc le codage de 64 caractères, tandis que la première norme internationale, ASCII (American Standard Coded Information Interchange), date quant à elle de 1967. Basée sur 7 bits (128 caractères), elle reste très utilisée, puisque la majorité des jeux de caractères se servent, pour les caractères inclus dans cette norme, des mêmes combinaisons binaires.

À la suite d’ASCII, des dizaines de jeux de caractères ont été créés, permettant de coder des écritures très différentes d’une manière satisfaisante. La norme ISO-Latin-1 (ou ISO 8859-1) donne ainsi la possibilité de coder 256 caractères, couvrant la plupart des langues d’Europe occidentale. Mais des problèmes existaient : ambiguïté des polices utilisant les mêmes valeurs pour coder des caractères et des symboles totalement différents, et surtout cacophonie générée par l’utilisation de multiples jeux de caractères incompatibles.

La Pierre de Rosette, comportant le même texte en hiéroglyphes, en démotique et en grec

La Pierre de Rosette, comportant le même texte en hiéroglyphes, en démotique et en grec

C’est pour résoudre ces problèmes que le consortium Unicode, créé en 1989 par de grandes sociétés informatiques, a mis au point le standard Unicode (première norme publiée en 1991). Ce mécanisme universel de codage de caractères définit une manière cohérente de coder des textes multilingues et facilite l’échange de données textuelles.

Aujourd’hui, Unicode figure dans tous les grands langages informatiques et applications logicielles, de Java à XML, en passant par Google et Windows, dès lors qu’un usager lit ou écrit quelque chose sur un ordinateur. En vingt ans d’existence, Unicode a ainsi opéré une réelle révolution en matière de fonctionnement et de communication informatique, en raccourcissant et en simplifiant les problèmes de traduction, et donc de diffusion dans le monde, des textes et applications. Maintenu par le Unicode Technical Comittee, il s’enrichit en permanence de nouvelles langues et caractères et est sans cesse réactualisé. La dernière version est la 5.2, qui date d’octobre 2009. Unicode a déjà défini 245 000 codes différents et pourra à terme en coder jusqu’à plus de 2 milliards.

♦ Pour aller plus loin :

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.

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

JASLIER, Emmanuel. « Catalogue et catalogage ». Sous la dir. d’Yves Alix, Le métier de bibliothécaire, Paris, Editions du Cercle de la librairie, 2010, p. 237-258.

Les acteurs d’Unicode

Calligraphie à l'eau sur le sol, près de la forêt de Stèle du temple de Conficius (Kongzi) à Xian

Calligraphie à l'eau sur le sol, près de la forêt de Stèle du temple de Conficius (Kongzi) à Xian.

– Le Consortium Unicode

Le Consortium Unicode a été créé en 1989 en Californie par de grandes sociétés informatiques comme Adobe, Apple, IBM, Microsoft, Sun, Xerox qui ont ensuite été rejointes par de grosses multinationales du secteur numérique telles que Google, Oracle, Yahoo!. Ce consortium est une organisation sans but lucratif qui coordonne le développement d’Unicode tout en gérant la marque. Il s’est donnée comme objectif de remplacer l’utilisation de pages de code nationales par une norme qui contient à elle seule l’ensemble des caractères utilisés dans toutes les langues. Ce travail est presque achevé, il reste maintenant à coder les caractères rares de langues plus, ou très peu, utilisées. La dernière mise à jour d’Unicode a été publiée en octobre 2009, il s’agit de la version 5.2.

Peuvent être membre du Consortium tous les contributeurs volontaires – entreprises privées, institutions, chercheurs, groupes d’utilisateurs – intéressés au développement d’Unicode.

Le Consortium est organisé en trois comités : un éditorial et deux techniques, dont le Comité technique Unicode (UTC), qui est chargé de la création, de la maintenance et de la qualité du standard Unicode.

– W3C

Le Consortium Unicode travaille en étroite collaboration avec le World Wide Web Consortium, abrégé par le sigle W3C.

Cet organisme de standardisation fondé en 1994, est chargé de promouvoir la compatibilité des technologies du World Wide Web. Comme le Consortium Unicode, le W3C ne possède pas de programme de certification ; il laisse le soin aux fabricants de suivre ses recommandations.

– L’Organisation internationale de normalisation (International Organization for Standardization ou ISO) et la norme ISO 10646

Contrairement aux consortiums Unicode et W3C, l’ISO délivre des certifications. Cet organisme international est composé de représentants d’organisations nationales de normalisation de 158 pays, il a été créé en 1947. Il a pour but de produire des normes internationales dans les domaines industriels et commerciaux appelées normes ISO.

C’est lui qui définit la norme ISO 10646 qui distingue deux méthodes d’encodage à 16 bits (2 octets) et 32 bits (4 octets) : UCS-2 (16 bits) et UCS-4 (32 bits). Son développement est parallèle et synchronisé avec celui sur la norme Unicode dont les buts sont les mêmes.

♦ Pour aller plus loin :

Le site du Consortium Unicode

Le site de W3C

Le site de l’ISO

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.

Fiche pratique : Unicode au quotidien

Après une petite mise au point dans « Unicode pour les Nuls », voici une présentation du versant « pratique » d’Unicode, applicable aussi bien dans un traitement de texte que dans un logiciel de messagerie, au quotidien (car ces outils font aussi partie de l’ordinaire des bibliothèques !). Pour ce billet, le guide Unicode 5.0 en pratique : codage des caractères et internationaliation des logiciels et des documents de Patrick Andries nous a été très utile.

Ma police est-elle « Unicode-compatible » ?

Il existe plusieurs façon de vérifier que notre police préférée peut être utilisée avec des textes Unicode. Pour les ordinateurs qui tournent sous Windows, il faut au préalable télécharger et installer librement un logiciel Microsoft. Une fois ces étapes franchies, il suffit d’aller sur une police (dans le répertoire « Polices » du panneau de configuration), de faire apparaître le menu contextuel en faisant un clic droit et de choisir « Propriétés ». Une boîte de dialogue apparaît. Il convient de choisir l’onglet « CharSet / Unicode » pour vérifier que le premier encadré porte bien une mention du type « Font Encoding Type : Unicode ISO 10646-2 ». Les encarts suivants dans la fenêtre indiquent quels caractères cette police supporte  (latins mais aussi bien souvent cyrilliques, grecs, turcs etc.).

Pour les addicts d’autres systèmes d’exploitation que Windows, il existe une deuxième solution pour vérifier que l’on utilise une police « Unicode-compatible », grâce à l‘outil « BabelMap » (répertorié dans les signets, rubrique Outils). Il faut le télécharger, puis l’installer et le démarrer. Allez dans « Outils » puis « Analyse de police ». Il est alors possible d’analyser la police et de voir tous les blocs Unicode qu’elle prend en charge. Si les caractères affichés pour un bloc dans « L’échantillon de texte » présenté en dessous ne correspondent pas aux noms de caractères (par exemple : vous voyez des caractères en arabe quand l’intitulé parle de « latin… »), votre police n’est pas Unicode-compatible.

NB : cette interface, contrairement à celle de Microsoft, est entièrement traduite en français !

Comment saisir des caractères Unicode ?

Il existe plusieurs possibilités pour saisir des caractères Unicode, selon le logiciel, la plate-forme, le document que l’on veut rédiger. Nous ne parlons pas ici des langues idéographiques, qui disposent de ressources supplémentaires.

– La méthode la plus simple consiste à utiliser le clavier « normal », grâce à une combinaison de touches affectée à un caractère. Cette combinaison comprends souvent les touches « Alt », « Alt Gr » ou « Ctrl ». Ainsi, la valeur hexadécimale correspondant à « È » est « Alt+0200 ». Néanmoins, si cette méthode est facile à maîtriser, elle n’est valable que lorsqu’on utilise un petit nombre de caractères Unicode de façon très courante. Dans le cas inverse, retenir de mémoire toutes les combinaisons attachées aux caractères devient vite un casse-tête.

– La technique de l’appel de caractères s’approche beaucoup, dans la méthode et les inconvénients,  de ce premier mode de saisie. Il s’agit d’appeler un caractère en composant son code sous forme de chaîne de caractères (par exemple « &#x00c8 » correspond à un « È », qui sera réinterprété comme tel dans les éditeurs HTML et XML).

– Pour contourner cette difficulté mnémotechnique, certains logiciels proposent un menu (c’est le cas de l’éditeur HTML de Mozilla, Composeur, par exemple), dans lequel il faut aller chercher l’option qui insère un caractère choisit. Cela peut également devenir rapidement fastidieux, d’autant plus que souvent, les éditeurs ne proposent qu’un nombre de caractères très limité.

– La technique de la sélection à partir d’un tableau (comme dans la version gratuite de WordPress par exemple) s’en approche beaucoup : à travers un menu, on appelle une grille,  dans laquelle on choisit le caractère que l’on veut. Contrairement au simple menu décrit précédemment, le choix est plus étendu. C’est le cas sous Open Office, quand on fait « Insertion / Caractères spéciaux ».

– Enfin, mixant la solution « tableau »  à l’écran et utilisation du clavier via une combinaison de touches, la technique du clavier virtuel a tendance à se développer, comme nous l’avons détaillé dans un autre billet qui traite aussi de l’utilisation de ce type de matériel en bibliothèque.

♦ Pour aller plus loin :

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

L’outil BabelMap, à télécharger gratuitement.

L’accessibilité multilingue des sites web (1) : lire une page web multi-écritures

La généralisation d’Unicode est encore incomplète et nombre de pages web utilisent encore des codages hétérogènes qui peuvent poser des problèmes d’affichage. Les sites des principales bibliothèques russes, par exemple, utilisent la norme win-1251 pour le codage des caractères cyrilliques (Bibliothèque nationale de Russie à Saint-Pétersbourg et Bibliothèque d’État de Russie à Moscou). L’internaute doit donc s’assurer que les paramètres de son navigateur sont réglés sur la détection automatique des caractères, ou au besoin, modifier lui-même la norme d’affichage.

Sous Firefox : Affichage/Encodage des caractères, puis sélection du jeu de caractères approprié.

Sous Internet Explorer : Affichage/Code puis sélection du jeu de caractères approprié.

Si des problèmes persistent, cela s’explique par l’absence de polices Unicode dans le système de l’ordinateur utilisé, ou bien l’absence de police supportant les caractères de l’écriture recherchée, notamment des polices CJK pour les écritures idéographiques d’Europe orientale. Il faut alors installer les polices appropriées, sous Internet Explorer comme sous Mozilla Firefox, dans le menu Outils/Options/Contenu/Police.

Billet de 1 rouble soviétique de 1961 : dans le cadre central sur fond blanc, la mention « un rouble » en russe est traduite dans les langues principales des différentes républiques de l’URSS
Billet de 1 rouble soviétique de 1961 : dans le cadre central sur fond blanc, la mention « un rouble » en russe est traduite dans les langues principales des différentes républiques de l’URSS.

Pour aller plus loin :

Fiche pratique pour l’affichage de caractères non latins, sur le site du Conseil national de recherches Canada. [en ligne] Consulté le 22 juin 2010.

Fiche pratique de la Bibliothèque du Congrès (en anglais). [en ligne] Consulté le 22 juin 2010.

Précautions particulières pour l’installation de polices Unicode supportant les écritures idéographiques sur le site du Council on East Asian Libraries (en anglais). [en ligne] Consulté le 22 juin 2010.