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