ASCII

ASCII (American Standard Code for Information Interchange) est une norme qui permet de représenter des caractères (lettres, chiffres, symboles, etc.) sous forme de valeurs numériques que les ordinateurs peuvent traiter.

🇫🇷 ASCII étendu au-dessus de 128 (codes 128 à 255) – Contexte français

Le code ASCII standard s’arrête à 127, mais pour représenter des caractères spécifiques à des langues comme le français (accents, cédilles, symboles monétaires, etc.), on utilise une extension de l’ASCII sur 8 bits (donc de 128 à 255).

sous linux on dispose de

man ascii
#un extrait du man :
Tableaux
       Pour plus de commodité, voici des tables plus compactes en  hexadécimal
       et en décimal.

          2 3 4 5 6 7       30 40 50 60 70 80 90 100 110 120
        -------------      ---------------------------------
       0:   0 @ P ` p     0:    (  2  <  F  P  Z  d   n   x
       1: ! 1 A Q a q     1:    )  3  =  G  Q  [  e   o   y
       2: " 2 B R b r     2:    *  4  >  H  R  \  f   p   z
       3: # 3 C S c s     3: ! +  5  ? I  S  ]  g   q   {
       4: $ 4 D T d t     4: "  ,  6  @  J  T  ^  h   r   |
       5: % 5 E U e u     5: #  -  7  A  K  U  _  i   s   }
       6: & 6 F V f v     6: $  . 8  B  L  V  `  j   t   ~
       7: ' 7 G W g w     7: %  /  9  C  M  W  a  k   u  DEL
       8: ( 8 H X h x     8: &  0  :  D  N  X  b  l   v
       9: ) 9 I Y i y     9: '  1  ;  E  O  Y  c  m   w
       A: * : J Z j z
       B: + ; K [ k {
       C: , < L \ l |
       D: - = M ] m }
       E: . > N ^ n ~
       F: / ? O _ o DEL

UTF8

  1. Les 128 premiers caractères de UTF-8 = ASCII pur.
    • A = 65 = 01000001 → en UTF-8 : 1 octet identique
  2. UTF-8 est donc rétrocompatible avec ASCII.
Plage UnicodeLongueur en UTF-8Exemple
U+0000 à U+007F1 octetA, a, 0, etc.
U+0080 à U+07FF2 octetsé, ç, ñ
U+0800 à U+FFFF3 octets, ,
U+10000 et +4 octets𐍈, 😄, etc.
CaractèreASCII (binaire)UTF-8 (binaire)
A0100000101000001
é11000011 10101001
11100010 10000010 10101100

💬 Métaphore pour faciliter

Nombre d’octetsPremier octet (bits de poids forts)Description
1 octet0xxxxxxxCaractère ASCII standard (0-127)
2 octets110xxxxxPremier octet d’un caractère sur 2 octets
3 octets1110xxxxPremier octet d’un caractère sur 3 octets
4 octets11110xxxPremier octet d’un caractère sur 4 octets

ASCII, c’est un petit tiroir à 128 cases.
UTF-8, c’est une commode extensible : elle garde les 128 premières cases intactes, mais ajoute des tiroirs supplémentaires à ouverture variable (1 à 4 octets selon le caractère).

🎯 Résumé pour retenir

  • UTF-8 contient ASCII
  • ✅ Gère tous les alphabets du monde
  • ✅ Flexible (1 à 4 octets par caractère)
  • ✅ Standard universel sur le web aujourd’hui

Le site officiel :

https://unicode.org/emoji/charts/full-emoji-list.html

Exercice sous linux

bruno@elliott:~/Works/utf$ cat emoji.txt
😂
ê
é
è
à
@
bruno@elliott:~/Works/utf$ hexdump -C emoji.txt 
00000000  f0 9f 98 82 0a c3 aa 0a  c3 a9 0a c3 a8 0a c3 a0  |................|
00000010  0a 40 0a 0a                                       |.@..|
00000014

on voit nettement que le smiley c’est 0xf0 0x9f 0x98 0x82 4 octets

0x82 : 1000 0010 (2)
0x98 : 1001 0010 (2)
0x9f : 1001 1111 (2)
0xf0 : 1111 0000 (2)