Va-t-on finir par déboucher sur un Unicode "latin", + un Unicode remanié "Asicode" ?
...c'est la sensation que ça me laisse. ^^'
Quel joyeux bordel... et on a même pas abordé les polices d'écritures ! x)
Va-t-on finir par déboucher sur un Unicode "latin", + un Unicode remanié "Asicode" ?
...c'est la sensation que ça me laisse. ^^'
Quel joyeux bordel... et on a même pas abordé les polices d'écritures ! x)
Même pas, parce qu'en plus ces pays ne s'apprécient pas trop et donc ne collaborent pas entre eux!
Du coup on a un encodage spécifique en Chine, un autre au Japon, un autre en Corée, encore un à Taiwan... bref, tout le contraire d'une unification.
Et bien sûr les encodages japonais ne contiennent pas les caractères n'existant qu'en Chine et inversement.
Quand on y pense, hors de toute considération politique, l'initiative UniHan n'est pas stupide mais le problème est plutôt qu'Unicode refuse toute indication contextuelle (idée: qu'un numéro ait une signification différente suivant les caractères ou octets qui le précèdent) et ne propose pas pour autant une solution quand il faut réellement faire la distinction (cas de la phrase en japonais au milieu d'un texte en chinois). Pourtant ils l'avaient fait pour l'écriture arabe (voir "formes de présentation arabe" dans Unicode).
L'idée d'Unicode, c'est d'avoir un répertoire exhaustif de caratère unique, je comprend donc leur position.
Ce qu'il faudrait ajouter, c'est à l'image d'un dictionnaire, plusieurs sens à un unique caractères, pour avoir une interprétation contextuelle.
Et il me semble que c'est déjà le cas ...mais pas pour tout les caractères. ^^'
Hélas ce n'est pas si simple car tout dépend de la définition du mot caractère. Même la définition proposée par Unicode (au chapitre 1 de la spécification) est sujette à interprétation, et comme tu le verras dans les exemples qui suivent, ils ne s'en privent pas.
Même sans s'intéresser aux caractères chinois, on peut déjà parler de caractères français, comme par exemple notre ê. Une première approche est de le considérer comme un caractère unique, et c'est ce qu'a initialement fait Unicode en lui attribuant le numéro 00EA.
Maintenant, pense au fait que pour taper ce caractère il faut actuellement utiliser deux touches, la première étant qualifiée de "touche morte". On pourrait faire remonter ça à l'époque des machines à écrire, certaines touches frappant le papier sans entraîner de mouvement juste après. Mais en fait ça remonte même aux débuts de l'imprimerie: à l'époque on appelait "caractères mobiles" des plaques qu'on mettait les unes à côté des autres pour former le texte, et parfois au dessus ou en dessous des autres. Notre ê était alors généralement formé de 2 caractères mobiles posés un au dessus de l'autre. Donc le ê, ce n'était pas un caractère, mais deux.
Au risque de surprendre, Unicode supporte également cette deuxième forme qu'il appelle forme canonique: le ê peut aussi s'écrire avec les deux caractères 0065 0302: le premier code un e, le second un ^ mais avec la particularité de se superposer au caractère qui le précède. On obtient alors ê et en principe on ne doit pas voir la différence, même si certaines polices de caractère risquent de mal l'interpréter (bizarrement chez moi ça marche sous linux mais pas sous windows!).
Beaucoup de gens préfèrent la forme originale, soit pour des raisons historiques soit parce qu'elle occupe moins de mémoire; mais en réalité, la forme canonique a aussi des avantages: elle rend bien plus facile l'écriture de nombreux algorithmes, tels qu'une recherche sans tenir compte des accents, ou le classement alphabétique.
D'ailleurs, même d'un point de vue linguistique ça se tient: en français le ê n'est pas considéré comme une lettre distincte du e, la preuve en est que quand tu tries par ordre alphabétique, on est sensé le considérer comme identique (du moins en première passe). Après je ne généralise pas, certaines langues considèrent les lettres accentuées comme des lettres à part entière (en espéranto, ĉ sera entre c et d; en suédois, å vient après le z; etc.) mais généralement, c'est bien plus facile d'implémenter l'ordre alphabétique, quelle que soit la règle, quand on utilise des formes canoniques.
Tout ça pour dire que même en se limitant à l'alphabet latin, l'unicité promise par Unicode en prend déjà un coup. En réalité la seule unicité de cet encodage, c'est sa volonté de supplanter tous les autres!!!
Pour en revenir aux caractères chinois, ici c'est plutôt le contraire: dans cette page, tous les caractères d'une même ligne ont la même signification (celle qui est donnée sur la dernière colonne), c'est plutôt la forme qui varie d'un pays (ou plus exactement d'une langue) à l'autre.
Il faudrait donc, justement, ajouter des contextes, c'est à dire un moyen d'indiquer que le caractère qui suit doit être écrit sous sa forme chinoise ou japonaise. Mais la notion de contexte, c'est à dire l'idée qu'une suite d'octets ne code pas un caractère mais le contexte à utiliser pour le caractère qui va suivre, est justement l'idée qu'Unicode refuse depuis le début.
Après tout pourquoi pas, mais le problème c'est qu'ils n'offrent aucune alternative. J'aurais bien voulu écrire dans ce message la question « est-ce que 今 et 今 sont deux caractères distincts ou pas? » mais comme le forum ne permet pas de mettre une balise HTML autre que celles prédéfinies (ou alors je n'ai pas trouvé comment) ils risquent fort d'apparaître identiques chez toi. Donc tu vois, même sans écrire en chinois, le seul fait de vouloir donner un exemple suffit à illustrer le problème!
Il y a bien des solutions pour d'autres caractères, mais pas un système de contextes.
Un bon exemple est l'écriture arabe. Dans cet alphabet, chaque lettre a jusqu'à 4 formes différentes suivant la position dans le mot. Unicode propose deux manières de traiter le problème (et hop encore un cas où l'unicité des caractères en prend un coup!)
A l'origine, ISO-8859-6 n'encodait pas le contexte, c'était à l'ordinateur de déterminer tout seul quelle forme était adéquate. Unicode a utilisé cette méthode dans le bloc "arabe". Puis ils se sont rendus compte que dans certains cas il est impossible de déterminer le contexte (par exemple dans ce texte, avec le bloc original je serais incapable d'écrire la phrase « ﭑ et ﭐ sont deux variantes d'une même lettre », ce qui peut être utile dans un manuel scolaire. Alors ils ont créé les « formes de présentation arabe ». Mais évidemment pas question d'utiliser un contexte: chaque forme de chaque caractère a un numéro différent, ce qui fait qu'on passe de 20 lettres arabes à 611 valeurs distinctes!
Alors pourquoi le faire pour l'arabe et pas pour les caractères chinois? Trop nombreux ou pas assez utilisés?
--> pour moi ê ne devrait pas être codé comme un caractère unique, mais comme deux caractère uniques, à savoir : la lettre 'e' suivis de la diacritique '^' qui la précise. Car c'est l'accent et son contexte qui a du sens, non la lettre. L’hébreu et l'arabe est composé de nombreuses diacritiques à usage canonique.
Comme tu l'évoques, ce que je trouve compliqué, c'est qu'une même lettre peux présenter plusieurs graphies bien distinctes suivant le pays qui l'emploie (lorsque le système d'écriture, voir la langue, est commune).
...et va savoir la différence qu'il subsiste entre certaine graphies vraisemblablement identique en latin --> ^ = U+02C6 +0302
--> trop nombreux... quand ils ont virés les point de clonage, ils se sont privé des 2/3 de leur espace technique. Je pense que depuis cela affecte certains de leurs choix /vision.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager