Unicode
Unicode est un standard informatique développé par le Consortium Unicode qui vise à donner à tout caractère de n'importe quel système d'écriture de langue un identifiant numérique unique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel.
| Table of contents |
|
2 Normes et versions 3 Les polices de caractères Unicode 4 Partitionnement 5 Voir aussi 6 Liens externes 7 Autres références |
But
Unicode, dont la première publication remonte à 1991, a été développé dans le but de remplacer l'utilisation de pages de code nationales.
Dans la pratique, tous les systèmes d'écriture ne sont pas encore présents, car un travail de recherche documentaire auprès de spécialistes peut encore s'avérer nécessaire pour des caractères rares ou des systèmes peu connus (parce que disparus par exemple).
Cependant, tous les systèmes les plus utilisés dans le monde sont représentés, ainsi que des règles sur la sémantique des caractères, leurs compositions et la manière de combiner ces différents systèmes (par exemple, comment insérer un système d'écriture de droite à gauche dans un système d'écriture de gauche à droite ?).
Normes et versions
Le travail sur Unicode est parallèle et synchronisé avec celui sur la norme ISO/CEI 10646 dont les buts sont les mêmes. L'ISO/CEI 10646, une norme internationale publiée en français et en anglais, ne précise cependant ni les règles de composition de caractère, ni les propriétés sémantiques des caractères.
Unicode aborde cependant la problématique de la casse, du classement alphabétique, et de la combinaison d'accentss et de caractères.
Les caractères de la version 3.0 d'Unicode ont les même identifiants que ceux de la norme ISO/CEI 10646:2000.
La version 3.2 d'Unicode classe 95 221 caractères, symboles et directives.
La version actuelle est la version 4.0.
Des problèmes semblent cependant exister, pour le codage des caractères chinois .
Là où l'ASCII utilise 7 bits et le latin-1, ou ISO-8859-1, 8 bits (comme la plupart des pages de codes nationales), Unicode, qui rassemble les caractères de chaque pages de code, avait besoin d'utiliser plus de 8 bits, soit un octet. La limite fut dans un premier temps fixée à 16 bits puis est désormais placées entre 20 et 21 bits par caractère.
Pour différentes raisons, Unicode accepte trois formes de présentation pour représenter un caractère (au sens de symbole) : l'UTF-8, l'UTF-16 et l'UTF-32. Le chiffre après UTF représente le nombre de bits sur lequel le caractère est codé.
L'UTF-8 est le plus commun pour les applications Internet. Son codage de taille variable lui permet d'être en moyenne moins coûteux en occupation mémoire. L'UTF-8 assure aussi une compatibilité avec les manipulations simples de chaînes en ASCII ou latin-1 dans les langages de programmation.
UTF-8 est donc compatible avec les anciens programmes.
L'UTF-16 est un bon compromis lorsque la place mémoire n'est pas trop restreinte, car la très grande majorité des caractères Unicode assignés pour l'instant, qui sont les caractères les plus fréquemment utilisés, peut être représentée sur 16 bits.
Il a l'avantage que tous les caractères prennent la même place (2 octets).
C'est notamment l'encodage qu'utilise la plateforme Java en interne.
L'UTF-32 est utilisé lorsque la place mémoire n'est pas un problème et que l'on a besoin d'avoir accès à des caractères de manière directe et sans changement de taille. (Hiéroglyphes).
Avant de parler de police Unicode, il faut bien comprendre un principe essentiel : dire qu'Unicode code des caractères revient à dire qu'il attribue un numéro à des symboles. Unicode ne code en revanche pas les descriptions des caractères, les glyphes (le terme typographique français est œil, pluriel œils), c'est-à-dire la représentation graphique du caractère. Il n'y a donc pas une bijection entre la représentation du caractère et son numéro comme c'est le cas dans une police ASCII ou latin-1 classique.
Ainsi, le caractère français é peut-il être décrit de deux manières : soit en utilisant directement le numéro correspondant au é , soit en faisant suivre le numéro du 'e' par celui de l'accent aigu sans chasse. Quelle que soit l'option choisie le même glyphe sera affiché. On dira du premier caractère qu'il est précomposé, du second que c'est une composition (deux caractères forment un seul glyphe composé des deux). De nombreux glyphes sont dans ce cas et peuvent être codés de ces deux manières. Le plus souvent, le glyphe précomposé est préférable (c'est le cas pourle grec polytonique, par exemple, lequel, codé en décomposition, peut ne pas être satisfaisant graphiquement : selon les polices de caractères, les différents constituants du glyphe sont parfois mal disposés et peu lisibles).
De même, certains systèmes d'écriture, comme la devanagari ou les caractères arabes, nécessitent un traitement complexe des ligaturess : les graphèmes changent en effet de forme en fonction de leur position et/ou par rapport à leurs voisines (cf. Variante contextuelle et Lettre conjointe).
On comprend donc que le terme de police Unicode doit être utilisé très prudemment. Avoir une police qui représente un certain nombre ou toutes les représentations graphiques que l'on peut obtenir avec Unicode n'est pas suffisant, il faut en plus que le système d'affichage possède les mécanismes de représentation idoines (ce que l'on nomme le moteur de rendu).
Au contraire, une police qui ne représente que certains caractères mais qui sait comment les afficher mérite mieux le terme de police Unicode.
20000..2A6D6; Supplément B aux idéogrammes unifiés CJC
2F800..2FA1F; Supplément aux idéogrammes de compatibilité CJC
E0000..E007F; Étiquettes
E0100..E01EF; Supplément de sélecteur de variante
☒FFF80..FFFFF; Zone supplémentaire A à usage privé
☒10FF80..10FFFF; Zone supplémentaire B à usage privé
Les zones à usage privé indiquées par le symbole ☒ ne contiennent pas les mêmes glyphes d'une police à l'autre et doivent donc être évités sur Wikipédia.
La limite de l'octet
Les polices de caractères Unicode
Partitionnement
Le partitionnement à jour peut être trouvé sur le site officiel d'Unicode.
Cependant, vu le rôle important d'Unicode (ISO 10646) cette section décrit les principaux blocs. Les noms français sont les noms officiels de l'ISO/CEI 10646 la norme internationale bilingue qui reprend les mêmes caractères qu'Unicode, ils sont aussi officiels que les noms anglais.
0000..007F; Latin de base
0080..00FF; Supplément Latin-1
0100..017F; Latin étendu A
0180..024F; Latin étendu B
0250..02AF; Alphabet phonétique international (API)
02B0..02FF; Lettres modificatives avec chasse
0300..036F; Diacritiques
0370..03FF; Grec et copte
0400..04FF; Cyrillique
0500..052F; Supplément cyrillique
0530..058F; Arménien
0590..05FF; Hébreu
0600..06FF; Arabe
0700..074F; Syriaque
0780..07BF; Thâna
0900..097F; Dévanâgarî
0980..09FF; Bengali
0A00..0A7F; Gourmoukhî
0A80..0AFF; Goudjerate
0B00..0B7F; Oriya
0B80..0BFF; Tamoul
0C00..0C7F; Télougou
0C80..0CFF; Kannara
0D00..0D7F; Malayalam
0D80..0DFF; Singhalais
0E00..0E7F; Thaï
0E80..0EFF; Lao
0F00..0FFF; Tibétain
1000..109F; Birman
10A0..10FF; Géorgien
1100..11FF; Jamos hangûl
1200..137F; Éthiopien
13A0..13FF; Chérokî
1400..167F; Syllabaires autochtones canadiens
1680..169F; Ogam
16A0..16FF; Runes
1700..171F; Tagalog ou tagal
1720..173F; Hanounóo
1740..175F; Bouhid
1760..177F; Tagbanoua
1780..17FF; Khmer
1800..18AF; Mongol
1900..194F; Limbu
1950..197F; Taï-le
19E0..19FF; Symboles khmers
1D00..1D7F; Supplément phonétique
1E00..1EFF; Latin étendu additionnel
1F00..1FFF; Grec étendu
2000..206F; Ponctuation générale
2070..209F; Exposants et indices
20A0..20CF; Symboles monétaires
20D0..20FF; Signes combinatoires pour symboles
2100..214F; Symboles de type lettre
2150..218F; Formes numérales
2190..21FF; Flèches
2200..22FF; Opérateurs mathématiques
2300..23FF; Signes techniques divers
2400..243F; Pictogrammes de commande
2440..245F; Reconnaissance optique de caractères
2460..24FF; Alphanumériques cerclés
2500..257F; Filets
2580..259F; Pavés
25A0..25FF; Formes géométriques
2600..26FF; Symboles divers
2700..27BF; Casseau
27C0..27EF; Divers symboles mathématiques - A
27F0..27FF; Supplément A de flèches
2800..28FF; Combinaisons Braille
2900..297F; Supplément B de flèches
2980..29FF; Divers symboles mathématiques-B
2A00..2AFF; Opérateurs mathématiques supplémentaires
2B00..2BFF; Divers symboles et flèches
2E80..2EFF; Formes supplémentaires des clés CJC
2F00..2FDF; Clés chinoises (K'ang-hsi ou Kangxi)
2FF0..2FFF; Description idéophonographique
3000..303F; Symboles et ponctuation CJC
3040..309F; Hiragana
30A0..30FF; Katakana
3100..312F; Bopomofo
3130..318F; Jamos de compatibilité hangûl
3190..319F; Kanboun
31A0..31BF; Bopomofo étendu
31F0..31FF; Extension phonétique katakana
3200..32FF; Lettres et mois CJC cerclés
3300..33FF; Compatibilité CJC
3400..4DB5; Supplément A aux idéophonogrammes unifiés CJC
4DC0..4DFF; Hexagrammes du Classique des mutations ou Yi-king
4E00..9FA5; Idéophonogrammes unifiés CJC
A000..A48F; Syllabaire yi des Monts frais
A490..A4CF; Clés yi
AC00..D7A3; Hangûl
D800..DB7F; Demi-zone haute
☒DB80..DBFF; Partie à usage privé de la demi-zone haute
DC00..DFFF; Demi-zone basse
☒E000..F8FF; Zone à usage privé
F900..FAFF; Idéogrammes de compatibilité CJC
FB00..FB4F; Formes de présentation alphabétiques
FB50..FDFF; Formes A de présentation arabes
FE00..FE0F; Sélecteurs de variante
FE20..FE2F; Demi-signes combinatoires
FE30..FE4F; Formes de compatibilité CJC
FE50..FE6F; Petites variantes de forme
FE70..FEFF; Formes B de présentation arabes
FF00..FFEF; Formes de demi et pleine chasse
FFF0..FFFF; Caractères spéciaux
10000..1007F; Syllabaire linéaire B ou syllabaire mycénien
10080..100FF; Idéogrammes du linéaire B
10100..1013F; Nombres égéens
10300..1032F; Alphabet italique
10330..1034F; Gotique
10380..1039F; Ougaritique
10400..1044F; Déséret
10450..1047F; Shavien
10480..104AF; Osmanya
10800..1083F; Syllabaire chypriote
1D000..1D0FF; Symboles musicaux byzantins
1D100..1D1FF; Symboles musicaux occidentaux
1D300..1D35F; Symboles du Classique du mystère suprême
1D400..1D7FF; Symboles mathématiques alphanumériquesVoir aussi
Liens externes
Autres références