mardi, août 29, 2006

Communiquer n’est pas une mince affaire.


calcul
Originally uploaded by ArkanGL.

Et encore je ne vais pas parler du contenu informatif, car cela vous connaissez. Il n’est même pas question de la valse d’hésitations liées à la non-compréhension du message, mais uniquement d’une petite analyse des moyens, méthodes et conventions qui sont liés au support lui-même. Plus particulièrement ce que nous nommons Blog et qui en fait est un sous-ensemble du HTML. Ce faisant, je tente aussi de répondre à Holly Golighty qui rencontre quelques difficultés de cet ordre sur son site « Les roses de décembre ».
Pour bien comprendre, il faut prendre conscience de ce qu’une simple communication met en jeu.En l’occurrence, entre l’émetteur( celui qui écrit) et le récepteur( celui qui lit), le message va être trituré par tout un tas d’intermédiaires : Le logiciel de construction de la page, celui du stockage, du transport (qui n’est pas obligatoirement le même selon la direction du message), celui de l’interrogateur, de restitution et d’affichage.
Chacun a son langage et celui-ci peut même influer sur le contenu informatif. Cela se complique lorsque l’on tient compte des différentes langues et des différents alphabets.
Par exemple, pour dire « Bonjour » à quelque un, je dis tout simplement « Bonjour » dans la plus part des cas. Mais si j’ai affaire à un sourd, j’ai le choix entre mimer un salut comme si je possédais un chapeau, faire les lettres du mot avec mes mains ou adopter carrément le langage des signes. Il est évident que si j’ai à faire à un sourd anglophone, il ne comprendra rien à mon mimage de lettre.
Il en va ainsi des échanges entre les machines. Vous me direz, qu’il en va de même entre les machines et que si elles prennent un peu le temps de discuter entre elles, elles pourront résoudre leur problème. Mais c’est oublier que les machines aussi perfectionnées soit-elles restent bête comme les pieds.
Il faut dire que nous ne sommes par des gens simple. Il est très loin le temps où l’on se contentait de 126 caractères pour crypter le langage écrit. Nous sommes passé de nos jours à 65000 et quelques caractères. Je ne parle pas ici du même caractère dans différentes polices, cela deviendrait incalculable. J’imagine déjà certain d’entre vous dire « Quoi ? c’est pas vrai ! » et bien si.
Plus on en a, plus on en veut. Ainsi, pour exprimer un guillemet, nous pouvons désormais utiliser, Le « Guillemet anglais », Le « Guillemet anglais gauche », le « Guillemet anglais droit », Le « Guillemet apostrophe culbuté », le « Guillemet apostrophe », le « Guillemet virgule inférieur », le « Guillemet virgule supérieur culbuté », le « Guillemet apostrophe double culbuté », le « Guillemet apostrophe double », le « Guillemet virgule double inférieur », le « double prime », le « Guillemet simple vers la gauche », le « Guillemet simple vers la droite ». Vous me direz que vous n’avez pas besoin de tout cela, un simple guillemet anglais pour ouvrir ou fermer et le tour est joué. Mais c’est oublier les malheureux qui comme moi ont un nom de famille qui contient un accent qui avait avant tendance à disparaître car l’on ne savait comment faire comprendre aux machines qu’un é puisse être mis en majuscule et devenir un É, il y avait ainsi tout un tas de caractères qui passaient à la trappe et concourraient à une mondialisation par le gommage des spécificités qui font notre richesse. Saviez vous que l’on peut désormais utiliser des R cédille, des E caron, etc…
Ce petit miracle a un nom, l’UNICODE.
Unicode spécifie un numéro unique pour chaque caractère, quelle que soit la plate-forme, quel que soit le logiciel, quelle que soit la langue.
Fondamentalement, les ordinateurs ne comprennent que les nombres. Ils codent les lettres et autres caractères sous formes de nombres. Avant l'invention d'Unicode, des centaines de systèmes de codage de caractères ont été créés. Pas un seul d'entre eux n'était satisfaisant : par exemple, l'Union Européenne a besoin de plusieurs systèmes de codage pour couvrir toutes ses langues d'usage. Même pour une seule langue comme le français, aucun système de codage ne couvrait toutes les lettres, les signes de ponctuation et les symboles techniques en usage courant.
Ces systèmes de codage sont souvent incompatibles entre eux. Ainsi, deux systèmes peuvent utiliser le même nombre pour deux caractères différents ou utiliser différents nombres pour le même caractère. Les ordinateurs, et plus particulièrement les serveurs, doivent supporter plusieurs systèmes de codage de caractères, ce qui crée un risque de corruption des données à chaque transition.
Unicode transforme tout cela !
Unicode 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. Le standard Unicode a été choisi par des pionniers technologiques tels que Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys et bien d'autres. Unicode est exigé par de nombreux standards récents tels que XML, Java, etc. Unicode est utilisé dans de nombreux systèmes d'exploitation, dans tous les navigateurs récents, et dans de nombreux autres produits. L'apparition du standard Unicode, ainsi que la disponibilité d'outils le gérant, sont parmi les faits les plus marquants de la globalisation récente du développement logiciel.
L'incorporation d'Unicode dans les applications client-serveur, les applications distribuées et les sites Internet permet une simplification de l'architecture et une réduction des coûts par rapport à l'utilisation des systèmes de codage traditionnels. Grâce à Unicode, un seul logiciel ou site Internet peut satisfaire simultanément et sans modification les demandes de plusieurs plate-forme, langues et pays. Unicode permet aussi à des logiciels de provenance variée d'échanger des caractères sans pertes de données.
Dans ce cas, me direz vous d’où proviennent les problèmes rencontrée par Holly ?
Ils viennent de ce qu’elle déclare dans son modèle utiliser le système de codage UTF-8. Elle l’y déclare même deux fois.
UTF-8 (UCS transformation format 8 bits) est un format de codage de caractères défini pour les caractères Unicode (UCS). Chaque caractère est codé sur une suite de un à quatre octets. Soit de longueur variable. L’UTF-8 a été conçu pour être compatible avec certains logiciels originellement prévus pour traiter des caractères d'un seul octet.
L’UTF-8 est un système de codage intermédiaire entre la version ASCII (127 possibilités) et l’UNICODE qui est un système UTF-16 ou UTF-32.
Il est constitué ainsi : Le numéro de chaque caractère est donné par le standard Unicode. Les caractères de numéro 0 à 127 sont codés sur un octet dont le bit de poids fort est toujours nul. Les caractères de numéro supérieur à 127 sont codés sur plusieurs octets. Dans ce cas, les bits de poids fort du premier octet forment une suite de 1 de longueur égale au nombre d'octets utilisés pour coder le caractère, les octets suivants ayant 10 comme bits de poids fort.
L’UTF-8 a un gros inconvénient : Un caractère UTF-8 a une taille variable, ce qui rend certaines opérations sur les chaînes de caractères plus compliquées : le calcul du nombre de caractères ; le positionnement à une distance donnée dans un fichier texte et en règle générale toute opération nécessitant l'accès au caractère de position N dans une chaîne.
Les idéogrammes (kanji, par exemple) utilisent 3 octets en UTF-8 contre 2 octets en UTF-16. Les textes chinois, coréens et japonais y occupent donc plus de mémoire.
Un programme mal écrit peut accepter un certain nombre de représentations UTF-8 et les convertir comme un seul et même caractère. Prenons par exemple le caractère é : En UTF-8 il se code ainsi : 11000011 10101001 ors en Unicode, il possède le numéro 233 soit 10010111 et tient sur un seul octet.

Donc, en quoi le modèle d’Holly est'il mal écrit et perturbe la traduction, c’est assez simple dans son programme, on trouve à la fois des caractères de l’UTF-8 mais aussi des caractères de l’UTF-16 ou de l'ASCII qui lors de la traduction seront mal interprétés et générerons des anomalies. C’est le cas du é de décembre qui est alternativement décrit ASCII(é ou é code utiliser pour un caractère d’un poids supérieur au possibilité du code ASCII) en UTF-8 (é) ou en UTF-16 ou 32 (^E9). Petit conseil : soit tu passe à l'ASCII mais tu devras mettre ajouter l'indication du jeux de caractère français, soit tu passe à l'UTF-8 complétement, c'est à dire tu supprime les & et ^(alt d'appel à un caractère) qui trainent à droite ou à gauche. Dans tous les cas, je te conseil d'utiliser un blog fictif de test afin de ne rien perdre.

J'en ai fait un post pour que tout le monde en profite.


eXTReMe Tracker