Explication : C'est quoi le codage ?

Puisque le calculateur ne connait que des nombres, on représente les caractères par des nombres.

Dans les calculs de notre vie courrante, nous employons la base décimale, c'est-à-dire avec 2 caractères (1 à 9, plus zéro) nous avons 100 combinaisons possibles. L'informatique utilise comme base 16, qui est plus riche: avec 2 octets elle permet 256 combinaisons, ce qui au début était suffisant pour représenter tous les caractères anglais. A l'aide de 4 octets nous pouvons distinguer tous les ordinateurs de la planète. Si a: est votre disquette et c: votre disque dur, l'adresse IP de votre correspondant au Japon sera par exemple gWsa: (mais on l'exprime par les nombres décimaux de ces 4 caractères : 103.87.115.97).
Le future version d'internet utilisera 16 chiffres et permettra s'adresser à tous les objets qui nous entournent.

Selon les normes américaines ASCII et ANSI, en utilisant les nombres de 32 à 127 on attribue des nombres à tous les caractères anglais et les principales signes de ponctuation. Le caractère No 65 sera A majuscule, No 66 B majuscule, No 97 sera a minuscule ... D'ailleur vous pouvez obtenir tous les caractères sur le clavier numérique: en tapant ALT et simultanément 0065 vous obtenez A, 0066 B, 0067 C...

Pour désigner les caractères accentués latins ouest-européens, on ne s'est pas mis tous d'accord. La norme internationale ISO-8859-1 utilise les nombres de 128 à 255. Windows code à peu près pareil, mais certains caractères lui manquent, puisqu'il n'utilise que des nombres de 160 à 255. MacIntosh utilise un code propre à lui. Le résultat, les textes du Mac ou d'Unix sont repris incorrectement sur Windows, quoique un programme les corrige.
Il en est de même en Europe Centrale, où la norme ISO-8859-2 est peu utilisée.

Pour les langues non latines, c'est encore pire. Au début, les Russes ont adapté ASCII pour créer le code KOI-7. No 65 est A russe majuscule, No 66 B majuscule etc. Puis, pour pouvoir utiliser internet et combiner le russe et l'anglais, on a introduit KOI-8, de nos jours le plus utilisé en e-mail et en news.

Le principe était simple: Koi8 = Koi7 + 160 pour les majuscules et Koi8 = Koi7 + 64 pour les minuscules. Si A latin est 65, A russe = 65 + 160 = 225, a russe = 97 + 64 = 193. Puis, Microsoft a compliqué tout en introduisant son code 1251, qui ne ressemble en rien à Koi8. La page en Koi8 est totalement illisible en 1251 ou en ISO-8859-5.

En passant d'une page à une autre codée différemment, il fallait aller dans les OPTIONS et on reconfigurait le codage et la police. Une vraie galère! Heureusement le language HTML permet aux créateurs de pages de faire figurer le paramètre charset dans l'entête de chaque page. Reconnu par le browser, celui-ci se reconfigure automatiquement et affiche la page dans le bon codage.

Unicode. Le principe est d'avoir une seule police contenant les caractères pour toutes les langues de la planète. Seulement, cette police sera très volumineuse, et puis, certaines nations n'ont pas encore d'écriture, d'autres refléchissent sur le choix de l'aphabet latin pour remplacer la cyrillique (Asie centrale). Il y a un autre obstacle: dans un octet, il ne peut y avoir plus que 255 combinaisons de bits, donc pour décrire le 256ème caractère et les suivants, il nous faut deux octets. De la même manière que dans le système décimal pour écrire dix, onze, douze, il nous fallait utiliser deux chiffres.

Unicode reprend souvant les normes ISO (pour le russe 8859-5) en ajoutant un nombre fixe, de sorte que chaque caractère sera codé sur 2 octets, comme si c'étaient 2 caractères. Ce qui pose quelques problèmes pour les anciens appareils. Sur une de mes pages j'explique comment contourner un problème des anciennes imprimantes.

Pour indiquer au système qu'il est en présence d'un texte en Unicode, chaque fichier commence par deux caractères : y tréma (ÿ) et thorn minuscule (þ) - en décimal 255 et 254. Ils ne seront pas affichés.

UTF8. En utilisant 2 octets pour chaque caractère, au lieu d'un seul, le volume des fichiers en Unicode a doublé. Une simplification d'Unicode est UTF8 : Les caractères anglais restent en ASCII, c'est-à-dire occuppent 1 octet, les autres sont sur 2 ou plusieurs octets (6 au maximum). Etant donné que quelques 90% des textes circulant sur internet sont en caractères ASCII, la durée du transmission en UTF8 est à peine plus élevée qu'en ASCII.

Le texte en UTF8 commence par 3 caractères  (239.187.191), mais c'est transparent pour l'utilisateur. Sauf sur quelques explorateurs d'internet qui l'interprêtent mal a affichent une page sans trop de sens.

... et la police ?

Chaque caractère est imprimé comme un tableau de lignes et de colonnes (matrice), où certaines cases sont vides, d'autres sont remplies par une minuscule goutte d'encre. Les gouttes très proches l'une de l'autre forment le dessin d'un caractère. L'ensemble de tous les dessins des caractères s'appelle police matricielle.

Une police matricielle ne permet pas de modifier la taille des caractères (ou difficilement). C'est pourquoi on utilise les polices vectorielles, où chaque dessin de caractère est représenté par des formules mathématiques. Au moment de l'affichage, et selon la taille souhaitée, la machine recalcule la matrice du caractère demandé. (Les polices True Type Fonts, *.ttf, sont pratiquement les seuls utilisées sous Windows, il y en a des milliers; vous en trouverez une liste abondante sur le site de l'Université McGill).

En plus de dessin, chaque caractère est accompagné de quelques indications techniques: son nom (par ex. E acute, E circumflex, E dieresis, C cedilla, U ring), sa hauteur, sa largeur, son code selon ANSI et selon Unicode etc... Par exemple

Comme on le voit, selon le codage que nous choisissons, plusieurs caractères peuvent avoir le même code décimal (ici 232). Seul le numéro Unicode est unique.
Par conséquent, pour afficher un caractère, l'ordinateur doit connaître outre le nom de la police et sa taille,
soit son numéro décimal, par exemple 232 plus des infos concernant la police (ouest-, centre-européenne, cyrillique...) et le codage utilisé (1250, 1251, ...),
soit son numéro Unicode (exemple & #1080 pour i cyrillique) sans d'autres infos.

Les applications actuelles travaillent en interne en Unicode. Lorsque nous ouvrons un texte déjà mis en forme à l'aide d'une ancienne police Windows 1251 (kurier, bukinist,...), et nous lui appliquons le format d'une police plus moderne (par ex. verdana), Word fait le transcodage en Unicode, en se basant sur son propre tableau et sur les indications contenus dans l'ancienne police (code Unicode ou nom du caractère).

Mais ces indications, surtout pour les anciennes polices, peuvent être fausses et incompatibles. Par exemple Unicode 268, nom : E grave (alors qu'en réalité le dessin représente M cyrillique). Ici, Word négligera le code erroné 268 et affichera E grave. Il pourrait aussi se baser sur 268 et afficher C caron. Lorsque nous mettons en forme un texte à l'aide d'une police où ne figure pas C caron, Word utilise pour ce caractère manquant une autre police, plus complète. Si E grave est absent, il peut supprimer l'accent. Si aucun remplacement n'est possible, Word mettra à la place un point d'interrogation ou un rectangle vide.

Vous trouverez le tableau des différents codes de page sur la page de référence (en anglais) ou sur les pages de Czyborra.

Sur la page suivante j'ai donné le mode d'emploi de mes polices pour Windows.
Pour avoir les voyelles cyrilliques accentuées (très utile pour les élèves et les professeurs), vous trouverez une police sur Cornell University. Sur le même site, il y a des polices originales, mais payantes.

Les utilisateurs de Macintosh trouveront les polices en cliquant sur Friends-Partners.


paragraphes périmés : à partir de 2004 environ, ceci devient transparent :

WEB EN CYRILLIQUE

Si vous voyez ici le mot INTERNET = ИНТЕРНЕТ en latin et en cyrillique, vous pouvez sauter les paragraphes suivants. En effet, les ordinateurs actuels sont pourvues en standard de caractères latins, grecs et cyrilliques et une page écrite en langues étrangères devrait s'afficher correctement sur votre écran.

Si ce n'est pas le cas, il peut y avoir plusieurs raisons:

1 - choix de codage incorrect. Comme tout le monde sait, les ordinateurs ne connaissent que des nombres. C'est à l'aide des nombres entre 32 à 127 qu'ils décrivent des lettres de l'alphabet anglais, cela s'appelle le code ASCII, utilisé par tout le monde.
Pour les caractères accentués et pour les autres alphabets, il n'y a pas eu l'accord parfait et nous avons plusieurs codes possibles. C'est pourquoi chaque page Web indique dans son entête, invisible par l'internaute, le code utilisé. Lorsque cette indication manque, le navigateur détermine le code automatiquement, mais il peut se tromper.
Donc, si la page est illisible, vous pouvez forcer le navigateur à essayer un autre code. Allez dans Affichage, Codage, et si supposez la page être en cyrillique, choisissez soit UTF8, soit Windows, éventuellement Koi8.

2 - caractères non installés (sous Windows 68 et plus ancien). Dans le cas, où seuls les caractères latins sont installés, vous verrez apparaître une fenêtre vous proposant de télécharger la police manquante. Cette police vous pouvez la trouver aussi sur le CD d'installation de windows : cliquez sur Démarrer, Paramètres, Panneau de configuration, Ajout/Suppression programme, Installation Windows et cochez "Prise en charge multilingue", ou selon les versions, "Options régionales et linguistiques". Introduisez le CD de Windows, suivez la procédure et enfin redémarrez le micro.

En effet, il y a deux sortes de polices: les anciennes qui n'ont que 255 caractères (127 anglais plus 128 qui diffèrent selon les pays), et les polices Unicode, qui pourraient englober tous les caractères utilisés sur la terre. Pour vérifier l'installation de votre police, cliquez sur "Démarer", "Tous les programmes", puis sur "Invite des Commandes" ou "Exécuter", puis dans la fenêtre noire du DOS qui s'ouvre, tappez CHARMAP.

Dans "Table des caractères" qui paraît, choisissez par exemple Police "Arial". En déroulant la table, après l'alphabet latin puis grec, vous devez voir l'alphabet cyrillique. Certaines caractères cyrilliques accentués, le vieux slavon et l'écriture glagolytique ne sont disponibles qu'en téléchargement.


. . . Comment envoyer un e-mail en cyrillique

Paragraphe périmé

Supposons que vous avez écrit une lettre en russe dans votre traitement de texte, ce qui est très pratique, car vous disposez d'une correction d'orthographe (exemple WordPerfect 9). Votre lettre, vous pouvez la sauvegarder et l'envoyer en tant que pièce jointe au mail, mais il faut que votre correspondant ne la détruise pas par crainte d'un virus. Si vous n'en êtes pas sûr, envoyez votre lettre en tant que page Web : pour cela, vérifiez la configuration de votre messagerie:

Configuration d'OUTLOOK EXPRESS - Dans le menu, cliquez sur Message et choisissez Nouveau Message. Une nouvelle fenêtre s'ouvre. Dans FORMAT cochez TEXTE ENRICHI (HTML), puis cliquez plus bas sur CODAGE. Là, on vous propose Alphabet occidental (Windows, ISO), cliquez sur Plus. Vous devriez pouvoir sélectionner cyrillique (KOI8 ou Windows) ou UTF-8.

Si un jour vous recevez un mail dont vous supposez qu'il est en russe alors qu'il est incompréhensible, essayez ces trois codes, un sera peut-être le bon. Ayons en vue qu'en informatique nous n'expédions jamais les caractères qui s'affichent sur notre écran. En fait nous attribuons à chaque caractère un nombre et nous expédions seulement une série de nombres ; l'ordinateur du destinataire affichera les caractères qui correspondent à ces nombres. Il va de soi, que lorsque le tableau de correspondances chez le destinataire n'est pas identique au nôtre, le message est illisible !

Pour notre test, choisissez KOI8-R. Puis, cliquez en bas sur onglet SOURCE. En 3ème ligne vous devriez trouver "charset=koi8-r" et en toute dernière ligne "</FONT></DIV></BODY></HTML>". Maintenant positionnez le curseur juste avant ce dernier </FONT> ou avant </BODY> et écrivez un "à" (accent grave). Ensuite cliquez sur onglet EDITION et vous devriez voir le Ю (you) majuscule cyrillique.

Si cela a marché, vous avez tout ce qu'il vous faut pour pouvoir envoyer un e-mail en cyrillique. Un texte rédigé dans votre traitement de texte peut-être copié-collé vers la fenêtre EDITION (windows XP) ou SOURCE (bloc-notes ancien).

En basculant entre la fenêtre Edition et la fenêtre Source, vous vous appercevez que le texte devient incompréhensible, mais c'est normal: Moskva s'écrit Ìîñêâà (en 1251) ou íÏÓËÂÁ (en Koi8) ou Москва (en Utf8).

ATTENTION : Word et Dreamweaver savent basculer entre plusieurs codes. Mais attention, certaines versions de ces logiciels sont à la fois trop intelligentes et pas assez. "You" en Koi8 s'écrit "à", mais Word a décidé, sans se poser des questions, qu'un "à" c'est forcément du français, donc il le transforme en "& agrave", ce qui en Koi8 donne une série de caractères insensée. Surveillez donc les pages Web traitées par Word.
En revanche, le Bloc-Notes v.4 distingue le texte ASCII du texte Unicode par la présence de deux caractères invisibles en début du fichier. Les anciennes versions du Bloc-Notes traduisent le texte cyrillique en une série de points d'interrogation ou de rectangles dont personne ne tirera aucun renseignement.
(L'explication).


Si quelque chose sur cette page n'est pas clair et vous avez toujours des problèmes d'utiliser le cyrillique, décrivez-moi votre configuration, j'essaierai de vous aider.

Mon e-mail

Retour Home page
Page écrite le 1/04/1996
Actualisée le 1/02/2006