Aller au contenu

Comprendre l’Encodage des Caractères

"L’encodage, c’est la traduction entre le monde humain et le monde binaire." 💡

Un professeur patient

Pourquoi parle-t-on d’encodage ?

Lorsque vous tapez une lettre sur le clavier, l’ordinateur ne comprend pas la lettre elle-même, mais un nombre.
Ce nombre est ensuite converti en binaire, et c’est ce que la machine manipule.

Mais pour que tout le monde s’accorde sur quel nombre représente quel caractère, il faut une règle commune : c’est ce qu’on appelle un encodage.

L’encodage définit la correspondance entre les caractères et les nombres.


ASCII : la première norme

Vous connaissez déjà le code ASCII :
- Chaque caractère est représenté par un nombre sur 7 bits (128 symboles possibles).
- Parfait pour l’anglais, mais… pas pour les autres langues !

Exemples : - 'A' → 65 → 01000001 - 'é' → ❌ pas défini dans le code ASCII !


Le problème des langues

Très vite, les programmeurs se sont rendu compte que l’ASCII était trop limité : - Il ne contient ni accents,
- Ni lettres non latines (comme ç, ñ, Ω, Ж, , etc.),
- Ni émojis 😅

Chaque pays a donc inventé sa propre version de l’ASCII, comme : - ISO-8859-1 (pour les langues d’Europe de l’Ouest), - Windows-1252 (version utilisée par Microsoft), - ISO-8859-5 (pour le cyrillique), etc.

Résultat : un chaos !
Un même nombre pouvait représenter différents caractères selon le système 😱
→ Exemple : le code 130 pouvait signifier é sur un PC français, mais sur un autre ordinateur.


UTF-8 : le langage universel du texte

Pour résoudre ce bazar, on a créé une norme universelle : Unicode.
Elle associe un numéro unique (code point) à chaque caractère du monde entier.
Exemples :

Caractère Nom Code Unicode
A Latin capital letter A U+0041
é Latin small letter e with acute U+00E9
Ω Greek capital letter omega U+03A9
Chinese character "milieu" U+4E2D
😄 Smiling face with open mouth U+1F604

Mais ces code points doivent encore être encodés en binaire pour être stockés en mémoire.
C’est là qu’intervient UTF-8.


Comment fonctionne l’UTF-8 ?

UTF-8 (Unicode Transformation Format – 8 bits) est le format d’encodage le plus utilisé aujourd’hui.
Il est compatible avec ASCII et évolutif.

  • Les caractères ASCII (de 0 à 127) sont codés sur 1 octet.
  • Les autres caractères utilisent 2, 3 ou 4 octets, selon leur complexité.
Caractère Code Unicode Octets UTF-8 (en binaire) Taille
A U+0041 01000001 1 octet
é U+00E9 11000011 10101001 2 octets
U+20AC 11100010 10000010 10101100 3 octets
😄 U+1F604 11110000 10011111 10011000 10000100 4 octets

👉 Ainsi, UTF-8 peut représenter tous les caractères du monde sans conflit ni confusion.


Exemple visuel d'encodage

Prenons le mot "Café" :

Caractère Unicode UTF-8 (hexadécimal) Binaire
C U+0043 43 01000011
a U+0061 61 01100001
f U+0066 66 01100110
é U+00E9 C3 A9 11000011 10101001

➡️ En UTF-8, le mot “Café” prend 5 octets, car “é” occupe 2 octets.


Résumé

Encodage Taille Langues prises en charge Compatibilité
ASCII 7 bits (128 caractères) Anglais uniquement Historique
ISO-8859-1 8 bits (256 caractères) Langues européennes Partiel
UTF-8 1 à 4 octets Toutes les langues ✅ Universel

Aujourd’hui, UTF-8 est le standard mondial : c’est celui utilisé sur Internet, dans C#, Python, HTML, etc.


⚠️ Erreurs fréquentes

  • ❌ Croire qu’UTF-8 et Unicode sont la même chose →
    Unicode = dictionnaire des caractères, UTF-8 = manière de les écrire en binaire.
  • ❌ Penser que chaque caractère fait toujours 1 octet →
    En UTF-8, certains en prennent 2, 3 ou 4.
  • ❌ Mélanger les encodages →
    Un texte enregistré en ISO-8859-1 mais lu comme UTF-8 affichera des symboles étranges : é au lieu de é.

Quiz

Vérifiez vos connaissances sur l’encodage 🔍

1️⃣ Qu’est-ce qu’un encodage ?
✅ Afficher la réponse
C’est une règle qui associe chaque caractère à un nombre (puis à une suite de bits).

2️⃣ Quelle est la différence entre Unicode et UTF-8 ?
✅ Afficher la réponse
Unicode définit tous les caractères possibles ; UTF-8 décrit comment les écrire en binaire.

3️⃣ Pourquoi UTF-8 est-il préféré aujourd’hui ?
✅ Afficher la réponse
Parce qu’il est compatible avec ASCII, compact, et capable de représenter toutes les langues.


Navigation

Programmation Algorithme Binaire Encodage Architecture Visual Studio Console


Pour aller plus loin