Les écritures non romanes sur le Web Scripts, jeux de

Transcription

Les écritures non romanes sur le Web Scripts, jeux de
537
CHAPITRE 20 -
Les écritures non romanes sur le Web
Quelle que soit l'hégémonie actuelle de l'anglais sur le Web, il vous arrivera fréquemment de
tomber sur des pages en français, mais aussi en Espagnol, en chinois, en arabe, en russe, en
hindi et dans d'autres langues. Souvent, ces pages ne se présentent pas très bien à l'écran. La
situation est encore pire lorsqu'il s'agit d'écritures n'ayant aucun rapport avec les langues occidentales (le chinois ou le japonais, par exemple).
Vous pouvez choisir le codage des caractères pour une page Web dans le menu Edition/Préférences (puis Aspect/Polices) de Netscape Navigator, ou l'option équivalente dans Internet
Explorer. Dans un monde parfait, le serveur Web se chargerait d'indiquer au navigateur quel
codage utiliser. Il pourrait même transmettre les polices manquantes pour pouvoir afficher la
page. Mais, en réalité, c'est souvent vous qui devez sélectionner le codage, en tâtonnant éventuellement parmi plusieurs, pour trouver le plus approprié. Par exemple, une page rédigée en
cyrillique peut être codée en Windows 1251, en ISO 8859-5, ou encore en K016-R. Si vous
sélectionnez le mauvais codage, des lettres cyrilliques apparaissent, mais le texte n'est pas
facile à lire.
Même si vous avez identifié le bon codage, vous n’êtes pas sûr de disposer des polices nécessaires à l'affichage. Dans ce cas, la plupart des caractères sont remplacés par des petites cases qui
correspondent à des dessins de caractères indisponibles.
La qualité visuelle des polices prend une grande importance, notamment pour le chinois et le
japonais qui comportent un nombre incroyable d'idéogrammes (plus de 80 000 en chinois).
Pour pouvoir distinguer les différents idéogrammes, il faut de la précision. Les éditeurs japonais
utilisent d'ailleurs, en général, du papier de meilleure qualité et des moyens d'impression plus
précis que les éditeurs occidentaux, afin de pouvoir restituer les fins détails des caractères japonais. Un écran d'ordinateur dont la résolution est de 72 points par pouce ne peut généralement
pas rendre correctement les caractères japonais et chinois, à moins de forcer le grossissement.
Chaque page Web ne peut être régie que par un seul codage, ce qui rend difficile le mélange de
plusieurs langues sur la même page, comme, par exemple, un commentaire en français sur du
texte chinois. La communauté Web a donc besoin d'un jeu de caractères universel qui permettrait d'afficher les caractères pour toutes les machines et tous les navigateurs, dans toutes les
langues. Il n'existe pas encore un tel jeu de caractères en vigueur, mais XML et le jeu Unicode
s'en rapprochent sérieusement.
En effet, les fichiers XML sont tous écrits selon le jeu Unicode, qui est sur deux octets, permettant de présenter la plupart des caractères des langues du monde (ce qui représente 216, soit 65
000 symboles environ).
Scripts, jeux de caractères, polices et glyphes
La plupart des langues humaines actuelles possèdent une représentation sous forme écrite. Le
jeu de caractères servant à écrire dans une langue se nomme le script. Il peut s'agir de phonèmes, comme dans les langues occidentales, ou d'idéogrammes, comme dans le chinois, le japonais et le coréen. Plusieurs langues sont souvent apparentées, avec des variations. L'alphabet du
turc moderne est l'alphabet romain classique avec trois lettres supplémentaires (le g avec un
accent circonflexe inverse, le c cédille et le petit i majuscule). Le chinois, le japonais et le coréen
partagent environ 80 000 idéogrammes han, bien que chacun des caractères puisse avoir une
signification différente d'une langue à l'autre.
Certaines langues peuvent utiliser plusieurs scripts. Le serbe et le croate sont quasiment identiques, ce qui donne l'expression serbo-croate. Pourtant, le serbe est écrit dans un script cyrillique
modifié, alors que le croate est écrit dans un script romain modifié. Tant que les ordinateurs
n'essayent pas de comprendre ce qu'ils traitent ou affichent, utiliser un script équivaut à utiliser
une langue qui peut être représentée par ce script.
Le jeu de caractères approprié à un script
Les ordinateurs ne traitent que des valeurs numériques. Pour pouvoir traiter du texte, ce texte
doit être d'abord codé, sous forme numérique, dans un jeu de caractères. Ainsi, le jeu de caractères ASCII fait correspondre la lettre majuscule A à la valeur numérique 65, et la lettre B à la
valeur 66 (C vaut 67, etc.). Ces codages ne fournissent aucune information concernant le style
ou la représentation visuelle des caractères. Les trois lettres suivantes :
Ccc
... valent toutes trois 67. Les informations concernant l'aspect visuel sont stockées ailleurs.
538
GOLIVE 6.0 - L’OUTIL WEB PROFESSIONNEL
Une police pour le jeu de caractères
Une police est une collection de glyphes (de formes) appropriées à un jeu de caractères — en
général, dans une taille, une graisse et un style spécifiques. Les trois C vus plus haut sont le
même caractère, mais sont dessinés avec un glyphe différent. Leur signification reste la même.
La manière de stocker les glyphes varie d'un système à l'autre. Il peut s'agir de représentations
sous forme de bitmaps ou de vecteurs. En typographie classique, il s'agit même de petits objets
en plomb. L'aspect ne nous concerne pas, ici. Ce qu'il faut retenir, c'est qu'une police permet à
l'ordinateur de savoir comment afficher chaque caractère d'un jeu de caractères.
Le mécanisme de saisie d'un jeu de caractères
Un mécanisme de saisie permet d'entrer du texte dans l'ordinateur. Aussi, les écrivains d'Europe
occidentale n'ont pas beaucoup de soucis à ce niveau. En France, par exemple, une dizaine de
caractères accentués seulement viennent en complément du jeu de caractères anglais.
Il en va tout autrement pour les jeux de caractères, tels que le cyrillique, l'hébreu, l'arabe ou le
grec. Tout d'abord, les claviers n'ont pas un nombre de touches infini. Il est impossible de les
aménager pour qu'ils permettent la saisie directe de lettres en romain et en arabe, en romain et
en grec. Si vous avez besoin des deux, vous utiliserez une touche de basculement permettant de
passer d'un système à l'autre. De même, pour l'hébreu, l'arabe, le cyrillique et autres jeux de
caractères alphabétiques non romains.
Mais cette astuce ne fonctionne même plus pour les scripts basés sur des idéogrammes, tels que
ceux du chinois ou du japonais. Un clavier japonais peut requérir l'accès à 5 000 touches différentes par combinaison et encore, cela ne couvre que 10% des symboles du langage! Les représentations syllabiques, phonétiques et radicales permettent de réduire le nombre de touches
nécessaires, mais on peut se demander si le clavier reste l'outil de saisie le plus approprié à la
saisie dans ces langues. Autrement dit, les systèmes de reconnaissance vocale et de caractères
fiables auront encore plus d'avenir en Orient qu'en Occident.
Systèmes d'exploitation et applications
A l'heure actuelle, les navigateurs les plus répandus (Netscape Navigator et Internet Explorer)
se sortent relativement bien des tâches d'affichage de scripts non romains. A partir du moment
où le système d'exploitation supporte un script et dispose des polices adéquates, le navigateur
parvient généralement à l'afficher correctement.
MacOS 7.1 sait gérer la plupart des scripts courants actuels. Pourtant, le système d'exploitation
de base ne reconnaît que les langues d'Europe occidentale. Le chinois, le japonais, le coréen,
l'arabe, l'hébreu et le cyrillique sont disponibles sous forme de kits de langue, valant plusieurs
centaines de francs chacun. Chaque kit contient les polices et les mécanismes de saisie appropriés. Il existe également un kit de langue indien qui gère le devanagari, le gujarati et le gurmukhu, très répandus dans le sous-continent indien. La version 8.5 de MacOS ajoutait un
support facultatif et limité d'Unicode (que la plupart des applications ne reconnaissaient pas
encore). Mac OS X, quant à lui, supporte Unicode.
Windows NT 4.0 utilise le jeu de caractères natif Unicode. Il gère donc correctement les langues
romanes, le cyrillique, le grec, l'hébreu et quelques autres. Par exemple, la police nommée
Lucida Sans Unicode offre une représentation visuelle pour environ 1300 des plus utilisés des 40
000 caractères du jeu Unicode. Microsoft Office 97 est livré avec des polices chinoises, japonaises et coréennes, que vous pouvez installer pour afficher des textes dans ces langues (regardez
le dossier nommé Fareast dans le dossier Valupack du CD-ROM d'Office).
Les systèmes d'exploitation grand public de Microsoft (Windows 3.1, 95 et 98) ne supportent
pas Unicode de manière correcte. Ils se basent totalement sur des versions localisées des systèmes, qui ne savent gérer que les caractères anglais et les caractères de la version localisée.
Les grandes variantes d'Unix supportent Unicode à des degrés divers. Solaris 2.6 supporte les
langages d'Europe, le grec et le cyrillique. Le chinois, le japonais et le coréen sont gérés par des
versions spécifiques, utilisant d'autres codages qu'Unicode. Linux commence à avoir du support
d'Unicode, et cela ne fera qu'augmenter dans un futur proche.
Les jeux de caractères classiques
Dans le passé, les jeux de caractères n'étaient pas les mêmes d'un ordinateur à l'autre. Mais, de
nos jours, tous utilisent, en général, un surensemble du jeu de caractères, dit ASCII. ASCII permet de coder les lettres de l'alphabet anglais et la plupart des signes de ponctuation et d'espaces.
539
CHAPITRE 20 -
Aux Etats-Unis, les Macintoshs utilisent le jeu MacRoman, les PCs sous Windows le jeu étendu
nommé Windows ANSI, et la plupart des stations Unix le jeu ISO Latin- 1. Il s'agit d'extensions
sur 8 bits du jeu ASCII, permettant de coder les caractères tels que le ç et le point d'interrogation
à l'envers de l'espagnol. Dans les langues orientales ou hébraïques, les jeux de caractères
deviennent franchement complexes pour supporter simultanément le jeu ASCII américain et la
langue locale.
Sur Internet, cela ne fonctionne plus. Bien qu'il y ait peu de chances d'afficher la page de titre du
Monde, puis de se trouver en page 2 avec du texte chinois ou coréen, il est tout à fait possible de
sauter d'un lien sur une page en français vers une page en japonais.
XML gère ce problème en remplaçant les jeux de caractères habituels restreints par un jeu de
caractères étendu permettant d'englober un très grand nombre de langues (y compris quelques
langues mortes). Ce jeu de caractères se nomme Unicode. Codé sur deux octets, il permet de
symboliser plus de 40 000 caractères correspondant à des centaines de langues. Tout processeur XML correct doit pouvoir comprendre Unicode, même s'il ne peut pas afficher tous les
caractères que ce jeu contient.
Les textes sont interprétés au moyen d'un codage. Si ce codage n'est pas spécifié dans la définition d'entité, c'est le codage par défaut nommé UTF-8 (un jeu Unicode compressé) qui est
appliqué, permettant d'utiliser les caractères ASCII habituels. Autrement dit, un fichier XML ne
contenant que des caractères ASCII sur 7 bits peut être édité avec un outil incapable de gérer les
caractères sur plus d'un octet, tels que ceux d'Unicode.
Le jeu de caractères ASCII
ASCII signifie American Standard Code for Information Interchange. C'est le jeu de caractères le
plus répandu. Il constitue un dénominateur commun pour tous les jeux de caractères, puisqu'il
définit les caractères nécessaires à l'écriture en langue anglaise, américaine, et quasiment rien
d'autre. Tous les caractères sont codés par des valeurs numériques entre 0 et 127 (d'où 7 bits).
Figure 20.3 - Le jeu de caractères ASCII codé sur 7 bits.
540
GOLIVE 6.0 - L’OUTIL WEB PROFESSIONNEL
Les 32 premières valeurs (de 0 à 31) sont des caractères de contrôle non destinés à être affichés. Vous y trouvez le retour chariot (CR), le saut de ligne (LF), la tabulation, la sonnerie (Bell)
et autres caractères hérités du bon vieux temps des téléscripteurs (ancêtres des terminaux clavier-écran). Le retour chariot provoquait effectivement un déplacement du chariot d'impression
vers la marge gauche, comme sur une machine à écrire. Le saut de ligne faisait tourner le tambour de support du papier d'une ligne. En dehors de ces quelques caractères mentionnés, les
autres ne sont pratiquement plus utilisés.
La quasi-totalité des autres jeux de caractères que vous pourrez rencontrer sont des extensions
d'ASCII. Autrement dit, leurs caractères entre 0 et 127 restent compatibles avec le jeu ASCII
américain à 7 bits, mais des caractères complémentaires sont codés entre 128 et 255.
Les jeux de caractères ISO
Le A dans l'acronyme ASCII signifie American. Vous n'êtes donc pas étonné de découvrir que le
jeu ASCII de base ne contient aucun des caractères accentués du français, par exemple.
Mais ce jeu peut être étendu par codage des valeurs à partir de 128. L'organisme ISO a défini
plusieurs jeux de caractères basés sur le jeu ASCII et ajoutant des caractères dans la partie
supérieure. Le plus répandu est le jeu ISO 8859-1, également appelé Latin-1. Il ajoute suffisamment de caractères pour écrire dans quasiment toutes les langues d'Europe occidentale. Les
valeurs de 0 à 127 restent les mêmes qu'en ASCII pur; les valeurs de 128 à 255 sont celles fournies dans le tableau représenté Figure 20.4. Vous constatez que les 32 premiers caractères de la
seconde moitié sont, eux aussi, non utilisés, sauf en tant que caractères de contrôle, sur lesquels
nous ne nous étendrons pas ici.
Figure 20.4 - Le jeu de caractères ISO.
Le jeu Latin- 1 n'offre pas tous les caractères du grec, du cyrillique, du chinois et de bien
d'autres langues. La seule solution consisterait à utiliser des valeurs supérieures à 256, mais
cela pose un problème. Un seul octet (8 bits) ne permet de stocker qu'une valeur parmi 256.
Pour aller au-delà, il faut utiliser un deuxième octet, voire plus. Mais cela suppose une véritable
541
CHAPITRE 20 -
révolution, car la quasi totalité des programmes actuels suppose que les caractères sont codés
sur un seul octet. Presque tous les systèmes d'exploitation (sauf Windows NT et bientôt Linux)
utilisent des jeux de caractères sur un seul octet, différents les uns des autres et non un jeu
multi-octets. Le Latin- 1 est un des jeux les plus répandus, mais il faut en utiliser d'autres pour
gérer d'autres langues.
La norme ISO 8859 définit dix autres jeux de caractères (de 8859-2 à 8859-10 et 8859-15) permettant d'écrire dans différentes langues (les 8859-11 à 8859-14 sont en cours de développement).
Le Tableau ci-dessous décrit la nature des différents jeux de caractères ISO avec les langues
correspondantes. Rappelons que tous ces jeux conservent les codes ASCII de 0 à 127 du jeu
ASCII américain et modifient seulement la partie supérieure de 128 à 255.
Autre
nom
Langues
IS08859-1
Latin-1
ASCII plus les caractères des langues européennes les plus usitées
(albanais, afrikaans, allemand, anglais, basque, catalan, danois, écossais, espagnol, faroes, finnois, flamand, galicien, hollandais, irlandais,
islandais, italien, norvégien, portugais et suédois). N'offre pas les ligatures ij (hollandais), Œ (français) et les signes diacritiques de l'allemand.
IS08859-2
Latin-2
ASCII plus les caractères des langues d'Europe centrale (tchèque,
anglais, allemand, hongrois, polonais, roumain, croate, slovaque, slovène et serbe).
IS08859-3
Latin-3
ASCII plus anglais, espéranto, allemand, maltais et galicien.
IS08859-4
Latin-4
ASCII plus langues baltes, lituanien, letton, allemand, groenlandais et
lapon; remplacé par le jeu ISO 8859-10, Latin-6.
Jeu
IS08859-5
ASCII plus le cyrillique (biélorusse, bulgare, macédonien, russe, serbe
et ukrainien).
IS08859-6
ASCII plus arabe.
IS08859-7
ASCII plus grec.
IS08859-8
ASCII plus hébreu.
IS08859-9
Latin-5
Latin-1 sauf que les cinq lettres du turc remplacent cinq lettres peu usitées de l'islandais.
IS08859-10
Latin-6
ASCII plus les langues nordiques, lituanien, inuit (esquimaux du Groenland), sami non-skolt (lapon) et islandais.
IS08859-11
ASCII plus thai.
IS08859-12
Disponible pour ASCII plus devanagari (hindi, sanscrit, etc.), mais pas
défini pour l'instant.
IS08859-13
Latin-7
ASCII plus la région balte (letton, notamment).
IS08859-14
Latin-8
ASCII plus le gaélique et le gallois.
Latin-9
Similaire au Latin-1, mais avec le signe Euro à la place du symbole de
devise du Latin-0. De plus, les quatre lettres finnoises S et Z circonflexe
(majuscules et minuscules) remplacent des symboles rares, et le Œ
majuscule et minuscule du français remplacent les signes de fractions
1/4, 1/2 et 3/4.
IS08859-15
Certains des jeux se chevauchent. L'anglais et l'allemand peuvent, par exemple, être exploités
avec plusieurs de ces jeux de caractères. Ce chevauchement permet différentes combinaisons
de langues. Latin-1 permet ainsi de combiner dans le même document plusieurs langues occidentales, ainsi que l'islandais, alors que Latin-5 permet de combiner les langues occidentales
avec le turc. Pour un document mélangeant anglais, français et islandais, vous utiliserez donc
Latin- 1 — pour combiner avec du turc, Latin-5. En revanche, si vous avez besoin d'écrire simultanément en anglais, en hébreu et en turc, il vous faut recourir au jeu étendu Unicode, car aucun
jeu sur un seul octet ne permet de gérer les caractères de ces trois langues très différentes.
542
GOLIVE 6.0 - L’OUTIL WEB PROFESSIONNEL
Enfin, un seul octet ne suffit absolument pas pour les idéogrammes du chinois, du japonais et du
coréen. Le recours aux jeux multi-octets devient incontournable.
Le jeu de caractères Apple MacRoman
Le système d'exploitation MacOS est antérieur à la définition du jeu Latin-1 (le standard ISO
8859-1 est sorti en 1987, alors que le Mac est sorti en 1984). Autrement dit, Apple s'est vu
obligé de créer son propre jeu de caractères étendu, qui se nomme MacRoman. MacRoman offre
quasiment les mêmes caractères d'extension que Latin-1 (sauf les lettres propres à l'islandais),
mais il n'est pas étonnant que les caractères soient codés par des valeurs différentes. MacRoman est compatible avec ASCII et Latin- 1 pour les caractères de 0 à 127, ce qui permet de lire
un fichier en anglais d'un PC vers un Mac et inversement, mais pas les lettres accentuées. Le
tableau représenté par la Figure 20.5 rappelle la seconde moitié du jeu de caractères MacRoman.
Figure 20.5 - Le jeu de caractères Mac Roman.
Le jeu de caractères ANSI Windows
La première version de Windows à être diffusée massivement n'est apparue que plusieurs
années après MacOS. Il lui a donc été possible d'adopter le jeu de caractères Latin-1 qui était
apparu entre-temps. Ceci dit, les caractères de contrôle non imprimables entre 130 et 159 ont
été remplacés par un supplément de caractères affichables. Cette version modifiée de Latin-1
est généralement appelée "Windows ANSI". Le tableau représenté par la Figure 20.6 indique
l'intervalle de valeurs spécifique de Windows ANSI.
543
CHAPITRE 20 -
Figure 20.6 - Le jeu de caractère Windows ANSI.
Le jeu de caractères sous 16 bits Unicode
Jongler avec plusieurs jeux de caractères selon la langue reste acceptable dans les conditions
suivantes :
1 Vous n'avez pas besoin de travailler dans plusieurs langues à la fois.
2 Vous n'échangez jamais de fichiers avec une personne utilisant un autre jeu de caractères.
Du fait que les Macintoshs, les PCs sous Windows et les machines Unix utilisent des jeux de
caractères différents, ces conditions ne sont plus tenables de nos jours. Il faut pouvoir disposer
d'un jeu de caractères universel codant tous les caractères pour toutes les langues du monde.
Mais ce travail n'est pas aisé. Cela suppose une étude approfondie de centaines de langues et de
leurs scripts. Il faut ensuite pousser les développeurs de logiciels à adopter ce nouveau standard.
Mais les travaux progressent sérieusement pour aboutir à l'adoption du jeu de caractères
nommé Unicode. La plupart des grands acteurs (IBM, Microsoft, Apple, Sun, etc.) s'orientent
résolument vers l'adoption d'Unicode. Et XML a choisi Unicode comme jeu de caractères par
défaut.
Unicode code chaque caractère sous forme d'une valeur non signée sur deux octets entre 0 et
65 535. Actuellement, plus de 40 000 caractères Unicode sont déjà définis. Les 25 000 possibilités restantes sont réservées pour plus tard. Parmi ces 40 000, environ la moitié sert aux idéogrammes du han et 11 000 aux syllabes du hangul coréen. Les autres caractères permettent de
coder la plupart des autres langues du monde. Les caractères de 0 à 255 sont les mêmes que
ceux du jeu de caractères Latin-1.
J'aimerais pouvoir vous présenter un tableau de tous les caractères d'Unicode. Hélas, ce tableau
s'étendrait sur un nombre de pages supérieur à ce livre. Lorsque vous avez besoin de détails
concernant le codage de certains caractères Unicode, vous pouvez vous procurer le livre
(d'environ 1 000 pages) intitulé The Unicode Standard (ISBN 0-201-48346-9 d'Addison-Wesley). Il couvre la spécification Unicode 2.0. Une solution plus simple, dans un premier temps,
consiste à aller sur le site du consortium Unicode à l'adresse suivante
http://www.unicode.org/
Le ci-dessous présente les différents blocs de codage de la table Unicode. Pour chaque langue et
script, l'ensemble des caractères correspond à une région dans les 65 536 valeurs numériques
possibles. La plupart des langues peuvent être écrites avec les caractères d'un seul bloc, mais
certaines langues, telles que le croate ou le turc, ont besoin de puiser dans plusieurs des blocs
(par exemple, dans les quatre premiers blocs latins).
Script
Plage
Description
basic Latin
0-127
ASCII anglais américain.
126-255
Moitié supérieure d'ISO Latin-1 pour supporter allemand,
anglais, danois, espagnol, feroe, flamand, hawaiien, hollandais, indonésien, irlandais, islandais, italien, norvégien, portugais, suédois et swahili.
Latin-1 Supplément
544
GOLIVE 6.0 - L’OUTIL WEB PROFESSIONNEL
Script
Plage
Description
256-382
Ajoute les caractères des jeux ISO 8859 Latin-2, Latin-3,
Latin-4 et Latin-5 non présents dans Basic Latin et Latin-1.
Codage des langues afrikaans, breton, basque, catalan,
espéranto, estonien, français, frison, gallois, groenlandais,
hongrois, letton, lituanien, maltais, polonais, provençal,
rhéto-roman, roumain, romany, slovaque, slovène, serbe,
tchèque et turc.
Latin Extended--B
383-591
Surtout des caractères pour étendre le script latin pour gérer
des langues non basées sur ce script; de nombreuses langues africaines, les digraphes croates correspondant aux lettres cyrilliques serbes, la transcription pinyin du chinois et
les caractères sami du Latin-10.
IPA Extensions
592-687
L'alphabet phonétique international (international Phonetic
Alphabet).
Spacing modifier
686-767
Petits symboles modifiant la lettre précédente (lettres mortes).
Combining diacritical
766-879
Signes diacritiques comme -, 'et Ù utilisés, en général,
comme lettres mortes (souvent au-dessus).
Greek
880-1023
Grec moderne basé sur le jeu ISO 8859-7 et caractères
coptes.
Cyrillic
1024-1279
Russe, autres langues slaves (ukrainien, biélorusse,
etc.) et langues non slaves de l'ancienne URSS (azerbaïdjan,
ossétie, kabardien, tchétchène, tadjik, etc.); se
base sur ISO 8859-5. Quelques langues demandent
latin et cyrillique (kurde, abkhazian).
Armenian
1326-1423
Arménien.
Hebrew
1424-1535
Hébreu (classique et moderne), yiddish, judezmo, araméen
ancien.
Arabic
1536-1791
Arabe, persan, pashto, sindhi, kurde et turc classique.
Devanagari
2304-2431
Sanscrit, hindi, népalais, et autres langues du sous-continent
indien (awadhi, bagheli, bhatneri, bhili, bihari, brajbhasha,
chhattisgarhi, garhwali, gondi, harauti, ho, jaipuri, kachchhi,
kanauji, konkani, kului, kumaoni, kurku, kurukh, marwari,
mundari, newari, palpa et santali).
Bengali
2432-2559
Script du nord de l'Inde utilisé au Bengale et au Bangladesh;
pour bengali, assamais, daphla, garo, hallam, khasi, manipuri, mizo, naga, munda, rian, santali.
Gurmukhi
2560_2687
Punjabi.
Gujarati
2686-2815
Gûjarati.
Oriya
2816-2943
Oriya, khondi, santali.
Tamil
2944-3071
Tamil et badaga du sud de l'Inde, de Sri Lanka, de Singapour et de parties de la Malaisie.
Telugu
3072-3199
Telugu, gondi, lambadi.
Kannada
3200-3327
Kannada, tulu.
Malalayam
3326-3455
Malalayam.
Thai
3584-3711
Thai, kuy, lavna, pali.
Lao
3712-3839
Lao.
Tibetan
3840-4031
Langues de l'Himalaya (tibétain, ladakhi et lahuli).
Georgian
4256-4351
Géorgien.
Latin Extended-A
545
CHAPITRE 20 -
Script
Plage
Description
Hangul Jamo
4352-4607
Partie alphabétique du syllabaire hangul coréen.
Latin extended
7680-7935
Lettres latines normales combinées à des signes diacritiques, utilisées pour les voyelles vietnamiennes.
Greek extended
7936-8191
Lettres grecques combinées à des signes diacritiques,
pour le grec polytone et classique.
General punctuation
8192-8303
Assortiment de signes de ponctuation.
Superscripts and subs8304-8351
cripts
Indices et exposants habituels.
Currency Symb-ols
8352-8399
Symboles monétaires spécifiques.
Combining Marks for
Symbols
8400-8447
Signes diacritiques s'étendant sur plusieurs symboles.
Letter like Symbols
8446-8527
Symboles apparentés à des lettres comme TM OU <.
Number Forms
8526-8591
Chiffres et fractions romans.
Arrows
8592-8703
Symboles de flèches.
Mathernatical Operators
8704-8959
Opérateurs mathématiques spécifiques.
Miscellaneous technical
8960-9039
Hirondelles, traits de coupe, notation de mécanique quantique, symboles du langage APL et autres symboles techniques.
9216-9279
Images des caractères de contrôle ASCII pour débogage et
suivi de paquets réseau.
Optical Character
Recognition
9280-9311
Jeux OCR-A et MICR de reconnaissance optique utilisés
notamment sur les chèques.
Enclose-alphanumerics
9312-9471
Lettres et chiffres cerclés et entre parenthèses.
Box-Drawing
9472-9599
Semi-graphiques pour tracer des traits en mode Texte.
Block Elements
9600-9631
Graphiques non proportionnels pour DOS et autres.
Geometric Sha-pes
9632-9727
Carrés, losanges, triangles et autres.
Miscellaneous
symbols
9726-9983
Cartes, échecs, astrologie, etc.
Dingbats
9984-10175
Le jeu de symboles Zapf Dingbats.
CJK Symbols and
punctuation
12286-1235
1
Symboles de ponctuation chinois, japonais et coréen.
Hiragana
12352-12447 Syllabaire cursif japonais.
Katakana
12446-1254
3
Syllabaire japonais non cursif pour les mots importés
d'Occident.
Bopomofo
12544-12A5
91
Alphabet phonétique pédagogique chinois.
Hangul Compatibility
12592-1268
7
Caractères coréens pour compatibilité avec le codage
Jamo KSC 5601.
Kanbun
12686-1270
3
Signes japonais désignant l'ordre de lecture du chinois
classique.
Enclosed CJK
Lette rs
12800-1305
5
Caractères hangul et katakana encerclés et mois entre
parenthèses.
CJK Compatibility
13056-13311 Caractères pour encoder KSC 5601 et CNS 11643.
Control Pictures
546
GOLIVE 6.0 - L’OUTIL WEB PROFESSIONNEL
Script
Plage
Description
CJK Unified
19966-4095
9
Idéogrammes han du chinois, du japonais et du coréen.
Hangul Syllabes
44032-5520
3
Syllabaire coréen.
Surrogates
55296-5734
3
Actuellement libre, mais pourra servir à étendre Unicode
à plus d'un million de caractères.
Private Use
57344-6374
3
Les programmeurs peuvent ajouter ici leurs propres
caractères (non compatible d'une mise en œuvre à une
autre).
CJK Compatibility
63744-6425
5
Quelques idéogrammes han supplémentaires pour la
compatibilité avec les standards tels que KSC 5601.
Alphabetic presentation forms
64256-6433
5
Ligatures et variantes (latin, arménien et hébreu).
Arabic presentation
forms
64336-6502
3
Variantes de caractères arabes.
Combining aTlmarks
65056-6507
1
Combinaison de plusieurs signes diacritiques en un seul
étendu.
CJK compatibility
forms
65072-6510
3
Variantes verticales d'idéogrammes han pour Taiwan.
Small form
variants
65104-6513
5
Version réduite des signes de ponctuation ASCII pour
Taiwan
Additional arabic presentation forms
65136-6527
9
Autres variantes de caractères arabes.
Half-width and
full-width
65280-6551
9
Caractères de conversion entre différents codages chinois et
japonais.
forms Specials
65520-6553
5
Marque d'ordre des octets et espace spécial de largeur nulle
non sécable servant souvent à débuter un fichier Unicode.
UTF-8 (Unicode compressé)
Unicode consommant deux octets pour chaque caractère, les fichiers en texte anglais Unicode
doublent de taille par rapport à un codage ASCII ou Latin- 1. Pour résoudre ce petit problème, la
version compressée d'Unicode, appelée UTF-8, a été inventée. Elle n'utilise qu'un octet, les
caractères ASCII de 0 à 127. En échange, ce jeu consomme trois octets pour tous les caractères
moins fréquents en anglais, notamment les syllabes hangul et les idéogrammes du han chinois.
Ceux qui écrivent surtout en anglais utiliseront cette astuce, consistant à employer UTF-8. Les
autres, y compris les francophones, auront tout intérêt à utiliser Unicode normal.
Notez qu'un processeur XML suppose que les données textuelles sont dans ce format compressé
UTF-8, sauf mention contraire. Cela lui permet de lire directement des fichiers ASCII, mais les
formats tels que MacRoman ou Latin-1 posent un problème.
Le jeu UCS sur quatre octets
A peine répandu, Unicode a déjà fait l'objet de critiques notamment en raison de son support
incomplet des langues orientales. Il ne définit, en effet, que 20 000 des 80 000 idéogrammes
han qu'utilisent le chinois, le japonais, le coréen et le vietnamien classique. (Le vietnamien
moderne utilise un alphabet romain.)
Un nouveau jeu de caractères, nommé UCS (Universal Character System) et également ISO
10646, a donc été envisagé. Il utilise quatre octets pour coder chaque caractère (31 bits, en
fait), ce qui permet de coder plus de deux milliards de caractères. Cela suffit à toutes les langues
écrites de la planète (et laisse un peu de place pour certaines langues extraterrestres à découvrir). UCS permet, par exemple, de définir un jeu de caractères complet et indépendant pour
547
CHAPITRE 20 -
chaque langue, en sorte que le e (non accentué) du français ne soit pas le même code que le e
anglais et le e allemand.
Tout comme Unicode, UCS définit également des variantes et des formats compressés. Le format Unicode véritable est parfois UCS-2, puisque cela correspond à une forme compressée sur
deux octets du code UCS. Le jeu UTF- 16 est un codage spécial, basé sur une conversion de
certains des caractères UCS en chaînes d'octets de longueur variable, le but étant de pouvoir
utiliser Unicode tel quel (UCS-2).
Pour l'instant, les avantages de UCS sur Unicode sont tout à fait théoriques. Les seuls caractères
qui ont déjà été définis pour le nouveau jeu UCS sont ceux d'Unicode. Mais l'avenir est ainsi
assuré.
Le ci-dessous fournit les noms officiels des jeux de caractères les plus répandus de nos jours,
tels qu'il faut les indiquer dans l'attribut encoding. Pour d'autres jeux, consultez la liste officielle
qui est gérée par l'organisme IANA (Internet Assigned Numbers Authority) à l'adresse suivante
http://www.isi.edu/in-notes/iana/assignments/character-sets
Jeu
Langue/ Pays
US-ASCII
Anglais
UTF-8
Unicode compressé
UTF-16
UCS compressé
ISO-10646-UCS-2
Unicode brut
ISO-10646-UCS-4
UCS brut
ISO-8859-1
Latin-1, Europe occidentale
ISO-8859-2
Latin-2, Europe orientale
ISO-8859-3
Latin-3, Europe méridionale
ISO-8859-4
Latin-4, Europe septentrionale
ISO-8859-5
ASCII plus cyrillique
ISO-8859-6
ASCII plus arabe
ISO-8859-7
ASCII plus grec
ISO-8859-8
ASCII plus hébreu
ISO-8859-9
Latin-5, turc
ISO-8859-10
Latin-6, ASCII plus langues nordiques
ISO-8859-11
ASCII plus thaï
ISO-8859-13
Latin-7, ASCII plus langues baltes (lituanien notamment)
ISO-8859-14
Latin-8, ASCII plus gallois et gaélique
ISO-8859-15
Latin-9, Latin-0; Europe occidentale
ISO-2022-JP
Japonais
Shift_JIS
Japonais sous Windows
EUC-JP
Japonais sous Unix
Big5
Chinois de Taiwan
GB2312
Chinois, Chine continentale
K016-R
Russe
ISO-2022-KR
Coréen
EUC-KR
Coréen sous Unix
ISO-2022-CN
Chinois