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
- Les 128 premiers caractères de UTF-8 = ASCII pur.
A = 65 = 01000001→ en UTF-8 : 1 octet identique
- UTF-8 est donc rétrocompatible avec ASCII.
| Plage Unicode | Longueur en UTF-8 | Exemple |
|---|---|---|
| U+0000 à U+007F | 1 octet | A, a, 0, etc. |
| U+0080 à U+07FF | 2 octets | é, ç, ñ |
| U+0800 à U+FFFF | 3 octets | €, अ, 日 |
| U+10000 et + | 4 octets | 𐍈, 😄, etc. |
| Caractère | ASCII (binaire) | UTF-8 (binaire) |
|---|---|---|
| A | 01000001 | 01000001 |
| é | — | 11000011 10101001 |
| € | — | 11100010 10000010 10101100 |
💬 Métaphore pour faciliter
| Nombre d’octets | Premier octet (bits de poids forts) | Description |
|---|---|---|
| 1 octet | 0xxxxxxx | Caractère ASCII standard (0-127) |
| 2 octets | 110xxxxx | Premier octet d’un caractère sur 2 octets |
| 3 octets | 1110xxxx | Premier octet d’un caractère sur 3 octets |
| 4 octets | 11110xxx | Premier 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)
