Garçon devant un ordinateur.jpg
Hollie Little Pink Laptop.jpg
À propos • Aide • Le Livre d'or
Les lecteurs de Vikidia demandent des articles en plus. Voyez la liste d'articles à créer, et venez nous aider à les rédiger !

Codage des caractères

Une page de Vikidia, l’encyclopédie junior
Aller à la navigation Aller à la recherche

Le codage des caractères sert à enregistrer ou transmettre du texte pour les télécommunications ou l'informatique.

Il y a des codes assez anciens et qui peuvent être utilisés manuellement comme le code Morse. Ensuite, d'autres codes ont été mis au point pour les utilisations en informatique.

Code morse[modifier | modifier le wikicode]

Article à lire : Code Morse.

Le code Morse se fait à base de petits signaux longs ou courts. C'était le code du télégraphe et il était produit par des pressions longues et courtes sur un appareil 1.

Code EBCDIC[modifier | modifier le wikicode]

Une carte perforée 80 d'IBM.

Le code EBCDIC est un ancien codage des caractères utilisé à l'époque où les programmes étaient sur carte perforées. Chacune de ces cartes comportaient 13 lignes et 80 colonnes dans lesquelles il pouvait y avoir un trou ou non.

  • Les chiffres sont codé simplement avec un trou dans l'une des 10 lignes du bas,
  • les lettre (majuscules) qui apparaissent dans l'ordre alphabétique, avec un trou dans l'une des 3 premières lignes, et un autre dans l'une des 9 lignes du bas.
  • Pour les caractères de ponctuation, c'est plus compliqué.

Code ASCII[modifier | modifier le wikicode]

Article à lire : Code ASCII.

Le code ASCII est l'un des plus anciens codes utilisés pour représenter du texte en informatique. Il se base sur un tableau contenant les caractères les plus utilisés en langue anglaise : les lettres de l'alphabet en majuscule (de A à Z) et en minuscule (de a à z), les dix chiffres arabes (de 0 à 9), les signes de ponctuation (point, virgule, point-virgule, guillemet, parenthèses, etc.), quelques symboles et certains caractères spéciaux invisibles (espace, retour-chariot, tabulation, retour-arrière, etc.).

Les créateurs de ce code ont limité le nombre de ses caractères à 128, c'est-à-dire 27 (2 puissance 7), pour qu'il puissent être codés avec seulement 7 bits (sept 0 ou 1) : les ordinateurs utilisaient des cases mémoire de un octet, mais ils réservaient toujours le 8e bit pour le contrôle de parité (c'est une sécurité pour éviter les erreurs, qui étaient très fréquentes dans les premières mémoires électroniques).

Exemple : Le caractère A est codé en ASCII par le nombre 65 (dans notre système décimal habituel), qui correspond en binaire au nombre 1000001.

Chaque caractère d'un texte codé en ASCII occupe alors un octet. Un texte de 5000 caractères occupe donc 5 000 octets.

Exemple : La phrase Marie mange l'abricot. a une taille de 22 octets (il faut compter les espaces, l'apostrophe et le point final bien sûr).

L'expérience peut être faite en utilisant un éditeur de texte simple (comme gedit de GNOME ou le bloc-notes de Windows). Il suffit d'écrire le texte, puis de l'enregistrer et ensuite de vérifier la taille en octets du fichier obtenu (ce qui se fait le plus souvent en cliquant d'abord avec le bouton droit sur l'icône du fichier puis sur "Propriétés").

Le code ASCII est suffisant pour la langue anglaise qui ne comporte pas d'accents, mais il ne dispose pas de suffisamment de caractères pour écrire correctement du texte dans d'autres langues.

Code ASCII étendu[modifier | modifier le wikicode]

Longtemps après, les mémoires devenant plus fiables et de nouvelles méthodes plus sûres que le contrôle de parité ayant été inventées, le code ASCII ne suffisait plus. En effet, il avait l'inconvénient très gênant de ne contenir que les lettres non accentuées, ce qui pouvait suffire en anglais, mais pas dans les autres langues (comme le français et l'espagnol par exemple).

Pour écrire des phrases comme :

  • Marie mange l'abricot mûr.
  • Véro a été à la messe de noël.
  • C'est comme ça.

on utilise des caractères dont on n'a pas besoin dans la langue américaine.

C'est pourquoi le code ASCII fut étendu sur 8 bits, ce qui permit d'obtenir un tableau de 256 caractères (28) au lieu de 128. Il apparut alors possible d'écrire des lettres comme é, è, ç, à, ù, ô, æ, œ, ñ, etc...

Le bit de parité n'étant plus utilisé, les caractères d'un texte en ASCII étendu occupent toujours un octet, comme pour l'ASCII standard.

Remarque : Les caractères utiles étant très différents et variés entre les langues (surtout celles n'utilisant pas l'alphabet latin), il a fallu en fait créer plusieurs extensions de l'ASCII. Ainsi, selon la page de code utilisée, les caractères de code 128 à 255 peuvent être complètement différents. Cela a été normalisé par l'ISO pour donner les codages :

Puis il y a eu des améliorations des premiers codages et d'autres rajouts.

  • ISO-8859-9 : Très proche de ISO-8859-1 avec des lettres turques.
  • ISO-8859-10 : Amélioration de ISO-8859-4 pour supporter davantage de langues nordiques.
  • ISO-8859-11 : Thaï.
  • ISO-8859-12 : Devanagari, pour l'Inde et le Népal, mais codage abandonné.
  • ISO-8859-13 : Pays baltes.
  • ISO-8859-14 : langues celtiques dont le breton.

Pour terminer :

  • ISO-8859-15 très voisin du ISO-8859-1 mais avec le symbole € (qui n'existait pas au siècle dernier) à la place de ¤.
  • ISO-8859-16 est une amélioration de ISO-8859-9.

Il existe aussi l'extention IBM avec en plus des caractères accentués d'europe de l'ouest, des caractères graphiques servant à fabriquer des bordures de tableaux plus jolies que celles formées de points d'exclamation et de traits-d'union.

Jeux de caractères Unicode[modifier | modifier le wikicode]

Les nouvelles normes de codage du texte utilisent des standards universels.

UTF-8[modifier | modifier le wikicode]

Le but d'UTF-8 est d'avoir un système de codage des caractères valable pour toutes les langues du monde. Pour cela, les différents caractères possibles sont codés sur un, deux, trois ou quatre octets.

On a les 4 possibilités suivantes :

  • 1 octet entre 0 et 127 : même jeu de caractères que l'ASCII américain (sur 7 bits).
  • 1 octet entre 192 et 223 suivi d'un octet entre 128 et 191.
  • 1 octet entre 224 et 239 suivi de 2 octets entre 128 et 191.
  • 1 octet à partir de 240 suivi de 3 octets entre 128 et 191.

Comme le découpage peut sembler bizarre, regardons à quoi correspondent les intervalle en binaire :

  • 1 octet entre 00000000 et 01111111 : même jeu de caractères que l'ASCII américain (sur 7 bits).
  • 1 octet entre 11000000 et 11011111 suivi d'un octet entre 10000000 et 10111111.
  • 1 octet entre 11100000 et 11101111 suivi de 2 octets entre 10000000 et 10111111.
  • 1 octet à partir de 11110000 suivi de 3 octets entre 10000000 et 10111111.

Ce codage est devenu un standard utilisé par la plupart des systèmes d'exploitation et des protocoles de communication.

UTF-16[modifier | modifier le wikicode]

UTF-16 comme son nom l'indique est un codage de caractères utilisant un ou deux mots de 16 bits.

UTF-8 est pour l'instant plus utilisé car, dans le cas des textes des langues latines en tout cas, il a l'avantage de coder la majorité des caractères sur un seul octet.

Notes et références[modifier | modifier le wikicode]

Voir aussi[modifier | modifier le wikicode]

Portail de l'informatique —  Tous les articles sur son histoire, les logiciels, Internet…
Learning Arabic calligraphy.jpg Portail de l'écriture —  Tous les articles sur l'écriture.