Formation I.S.N.

Codage numerique du texte

BO et principes

BO



Savoirs Capacités Observations
Numérisation. L'ordinateur manipule uniquement des valeurs numériques. Une étape de numérisation des objets du monde physique est donc indispensable. Coder un nombre, un caractère au travers d'un code standard, un texte sous forme d'une liste de valeurs numériques. Il est ici utile de faire référence à des notions technologiques introduites à propos des architectures matérielles.

Principes



Le texte est constitué de caractères. On effectue deux étapes :
  • Symbole → Nombre
    • On fait correspondre à chaque caractère un unique code : c’est le jeu de caractères ou charset ou table de codage ou code point.
  • Nombres → Bits
    • Ensuite on définit une représentation binaire de tous les codes numériques du charset, c’est l’encoding.


Symbole \( \underbrace{→}_{charset} \) Nombre \(\underbrace{→}_{ encoding}\) Bits
Il existe de nombreux codages des caractères ; les principaux codages sont :
  • Le code ASCII (ISO 646) anglais américain, pas d’accents.
  • Les codes ISO 8859-1 extension pour les langues d’Europe occidentale.
  • Le code Unicode code universel, mis à jour régulièrement.
  • Les codes UTF-8 / UTF-16 représentations d’Unicode.

ASCII/ISO 646

Principes



  • ASCII (American Standard Code for Information Interchange), défini par Bob Bemer en 1961.
  • C’est un code sur 7 bits, le huitième bit étant 0 (dans le temps on utilisait ce bit comme bit de parité).
  • On peut donc représenter 128 caractères.
  • Il mélange 95 codes “graphiques” (qui s’affichent à l’écran) et33 codes de “controle”.
  • Problèmes : Pas d’accents et de nombreuses variantes pour utiliser le 8ème bit (Mac, IBM, ...).

Exemple



‘a’ est codé par 1100001


On peut aussi s'aider d'un convertisseur en ligne.

ASCII art



Exercices



  • 1. Voici une exclamation codée en binaire :
    01001010 00100111 01001101 00100000 01001001 01010011 01001110.
    Retrouver cette exclamation !
  • 2. Peut-on coder en binaire la phrase :
    "Un âne est-il passé par là ?" à l'aide de la table ASCII ?(Justifier la réponse).

UNICODE

Principes



  • La généralisation de l'utilisation d'Internet dans le monde a nécessité une prise en compte d'un nombre beaucoup plus importants de caractères d'écriture (par exemple le mandarin possède plus de 5000 caractères).
  • Un consortium composé d'informaticiens, de chercheurs, de linguistes, de personnalités du monde de la politique... s'occupe donc d'unifier toutes les pratiques en un seul et même système : l'Unicode, dont la première publication remonte à 1991.
  • Unicode est un charset, le nom et l’ordinal (son numéro) seront les mêmes pour toutes les plate-forme informatiques ou logiciel utilisés.
  • L’encodage d’Unicode est prévu sur 32 bits mais il existe plusieurs variantes d’encoding : l’UTF-8 est l’encodage le plus répandu et tend à s’imposer comme une norme (navigateurs internet, langages de programmation . . . ). Codage des caractères Unicode sur 1 à 4 octets. (Il existe d’autres formats comme UTF-16 et UTF-32).

Exemple



  • Pour l'Unicode, il y a plusieurs encodages. Le premier (UTF-1) est l'encodage brut en 16 bits, soit 16 bits (2 octets) par caractère. C'est un énorme gaspillage de place.
  • C'est pour cela que l'UTF-8 a été inventé.
  • Pour les codes 0 à 127, on utilise simplement 1 octet par caractère, comme pour l'ASCII.
  • Si vous avez besoin de caractères spéciaux (moins courants, codes 128 à 2047), utilisez 2 octets.
  • Si vous avez besoin de caractères spéciaux encore moins courants (codes 2048 à 65535), utilisez 3 octets.
  • et ainsi de suite…


é \(→ \underbrace{233}_{Unicode} → \underbrace{C3 A9}_{UTF-8} \)

bébé \(→ \underbrace{9823398233}_{Unicode} → \underbrace{62C3A962C3A9}_{UTF-8} \)

Voici une table ce caractères en ligne.