Représentation d’un texte en machine

Représentation d’un texte en machine
Introduction :
L’ordinateur ne manipule que des nombres (des bits). Pour manipuler du texte, il faut donc établir une correspondance entre chaque caractère (lettre, chiffre, ponctuation) et un nombre binaire. Cette correspondance est ce qu'on appelle l'encodage.

I. L'intérêt des différents systèmes d'encodage

Au fil de l'histoire de l'informatique, les besoins ont évolué, passant de l'alphabet anglais simple à la prise en charge de toutes les langues du monde.

A. Le standard historique : L'ASCII

L'ASCII (American Standard Code for Information Interchange) est le système historique.

  • Format : Utilise 7 bits (souvent stockés sur un octet de 8 bits).
  • Capacité : 27 = 128 caractères.
  • Contenu : L'alphabet latin (A-Z, a-z), les chiffres, la ponctuation de base et des caractères de contrôle (retour à la ligne).
  • Limite : Il ne contient aucun caractère accentué (é, à, ç), ce qui pose problème pour le français et la plupart des autres langues.

B. Les extensions régionales : ISO-8859

Pour résoudre le manque d'accents, on a utilisé le 8ème bit de l'octet pour passer à 256 caractères.

  • ISO-8859-1 (Latin-1) : Ajoute les accents d'Europe de l'Ouest.
  • Problème : Un fichier écrit en "Latin-1" s'affichera mal si on l'ouvre avec un encodage "Cyrillique". C'est l'époque des caractères bizarres comme é à la place de é.

C. La solution universelle : Unicode et l'UTF-8

Pour que tous les caractères (accents, chinois, emojis, symboles mathématiques) cohabitent, on a créé Unicode. L'encodage le plus utilisé pour Unicode est l'UTF-8.

  • Intérêt : Il est "universel".
  • Fonctionnement : C'est un encodage à taille variable (de 1 à 4 octets par caractère).
  • Compatibilité : Les 128 premiers caractères de l'UTF-8 sont identiques à l'ASCII. Un texte en pur anglais occupe donc la même place dans les deux formats.

II. Convertir un fichier texte

A. Pourquoi convertir ?

Si vous recevez un vieux fichier dont les accents sont remplacés par des symboles étranges, c'est qu'il y a un conflit d'encodage. Il faut le convertir vers un format moderne comme l'UTF-8 pour garantir sa lecture sur tous les appareils.

B. Exemples de conversion en Python

En Python, la manipulation de l'encodage se fait lors de l'ouverture des fichiers avec l'argument encoding.

python
# Lire un fichier encodé en vieux format (ISO-8859-1)
with open("vieux_fichier.txt", "r", encoding="iso-8859-1") as f:
    contenu = f.read()

# Le sauvegarder proprement en UTF-8
with open("nouveau_fichier.txt", "w", encoding="utf-8") as f:
    f.write(contenu)

C. Méthodes courantes de conversion

  • Éditeurs de texte (VS Code, Notepad++, Sublime Text) : Ils permettent de "Réouvrir avec l'encodage" puis "Enregistrer avec l'encodage".
  • Ligne de commande : L'outil iconv sous Linux/macOS permet de transformer un fichier en une ligne.

III. Ce qu'il faut retenir

  • ASCII : 7 bits, limité à l'anglais, pas d'accents.
  • ISO-8859-1 (Latin-1) : 8 bits, ajoute les accents d'Europe de l'Ouest, mais n'est pas universel.
  • UTF-8 : Standard actuel, universel (Unicode), taille variable (1 à 4 octets), compatible avec l'ASCII.
  • Bogue d'affichage : Si un texte s'affiche mal, c'est que le logiciel utilise une table d'encodage différente de celle utilisée lors de la création du fichier.