Vous êtes sur la page 1sur 11

Systèmes à microprocesseurs et à

microcontrôleurs

Codage du texte
L'Homme utilise, en plus des nombres, le
texte comme information
Comment stocker du texte dans une
machine ?
On affectera à chaque caractère un code
binaire
Un caractère : lettre, chiffre ou symbole

Code ASCII
ASCII : American Standard Code for
Information Interchange
Prononcé : Aski
Créé par les américains pour coder les
caractères
Sa première version faisait correspondre à
chaque caractère un code sur 7 bits.
128 caractères possibles
Exemple : "A"  100 0001 (0x41)

FST Tanger, K. EL MOKHTARI 1


Systèmes à microprocesseurs et à
microcontrôleurs

Code ASCII
Table du code ASCII sur 7 bits

Code ASCII 0x41

Caractères
de contrôle

CR : Carriage Return
(Retour Chariot)

Code ASCII
Limitation : Le code ASCII sur 7 bits ne
représente pas les caractères européens
accentués (é,è,ê, …)
Solution : Extension à 8 bits
256 codes possibles
Norme ISO 8859

FST Tanger, K. EL MOKHTARI 2


Systèmes à microprocesseurs et à
microcontrôleurs

Code ASCII
Code ASCII 8 bits Latin-1(ISO 8859-1)

Code ASCII
Limitation : Le code ASCII 8 bits ne prend
pas en charge les autres langues du
monde : l'arabe, le chinois, le grec, …
Solution : Créer plusieurs variantes du
code ASCII (jeux de caractères)
L'arabe : Code ASCII ISO 8859-6
Le grec : Code ASCII ISO 8859-7

FST Tanger, K. EL MOKHTARI 3


Systèmes à microprocesseurs et à
microcontrôleurs

Code ASCII
Code ASCII ISO 8859-6

Code ASCII
Conséquence : Il faut absolument indiquer
le jeu de caractère utilisé pour afficher
correctement un texte
Exemple
Soit le texte arabe : ‫نــعــم‬
Codage en ASCII (ISO 8859-6) : E4 DA E3
Si on se trompe et on affiche cette séquence en
codage ASCII Latin-1 (ISO 8859-1), le texte
affiché sera : äÚã

FST Tanger, K. EL MOKHTARI 4


Systèmes à microprocesseurs et à
microcontrôleurs

Code ASCII
Question : Et si on désire afficher un texte
en français (caractères accentués) avec des
citations en arabe, quel jeu de caractères
utiliser ?
Réponse : Nous devons utiliser un autre
codage des caractères : l'Unicode

Code ASCII
Représentation d'une chaîne de caractères
en mémoire (convention langage C)

1500 53 S
1501 61 a
1502 6C l
1503 75 u
1504 74 t
Indicateur de fin
1505 00 Caractère NUL

FST Tanger, K. EL MOKHTARI 5


Systèmes à microprocesseurs et à
microcontrôleurs

L'Unicode
Objectif :
Créer une table universelle qui comprend
les caractères de tous les alphabets du
monde. Chaque caractère a un code
unique.
Créé en 1991 par le Consortium Unicode
Il est compatible avec la norme
ISO/CEI 10646

L'Unicode
Au départ, les codes étaient représentés sur
16 bits. C'est suffisant pour coder tous les
caractères des langues du monde et les
symboles d'usage courant.
Aujourd'hui, on est arrivé à 21 bits pour
coder toutes les langues de l'histoire de
l'humanité

FST Tanger, K. EL MOKHTARI 6


Systèmes à microprocesseurs et à
microcontrôleurs

L'Unicode
Partitionnement de la table Unicode (extrait)

Début Fin Langue Début Fin Langue


0000 007F Latin de base (ASCII) 0370 03FF Grec et copte
0080 009F Non-utilisé 0400 04FF Cyrillique
00A0 00FF Supplément Latin-1 0500 052F Supplément cyrillique
0100 017F Latin étendu A 0530 058F Arménien
0180 024F Latin étendu B 0590 05FF Hébreu
0250 02AF Alphabet phonétique 0600 06FF Arabe
02B0 02FF Lettres modif. avec ch. 0700 074F Syriaque
0300 036F Diacritiques … … …

L'Unicode
Alphabet arabe (0600 - 06FF)

FST Tanger, K. EL MOKHTARI 7


Systèmes à microprocesseurs et à
microcontrôleurs

L'Unicode
Formes de représentation de l'Unicode
Au départ, chaque caractère en Unicode était
représenté sous forme de 2 octets (16 bits)
Problèmes
En prenant un octet au hasard dans un texte, on ne
sait pas s'il représente la première ou la deuxième
partie du code. Il faut alors faire le compte des
octets depuis le début du texte !!
Espace de stockage et trafic réseau doublé
inutilement pour le texte anglais qui représente le
grand pourcentage des données

L'Unicode
Formes de représentation de l'Unicode
Solution : transformer la représentation de
l'Unicode  UTF (Universal Transformation
Format)
Il existe trois types de transformation : UTF-8,
UTF-16 et UTF-32.
La plus connue sur Internet est l'UTF-8 car elle
prend le moins d'espace et elle est compatible
avec le code ASCII

FST Tanger, K. EL MOKHTARI 8


Systèmes à microprocesseurs et à
microcontrôleurs

L'Unicode
L'UTF-8
Sa longueur est variable entre 1 à 4 octet
Représentation UTF-8 Octets Bits codés de l'Unicode
0bbbbbbb 1 1 à 7 bits
110bbbbb 10bbbbbb 2 8 à 11 bits
1110bbbb 10bbbbbb 10bbbbbb 3 12 à 16 bits
11110bbb 10bbbbbb 10bbbbbb 10bbbbbb 4 17 à 21 bits

Exemples
Car. Unicode Code en binaire Bits Représentation UTF-8
A 0041 100 0001 7 01000001
é 00E9 1110 1001 8 11000011 10101001
€ 20AC 10 0000 1010 1100 14 11100010 10000010 10101100

L'Unicode
L'UTF-8
Transformation inverse
On regarde les bits de poids fort de l'octet pris

Poids fort Signification


0 Code ASCII américain (7 bits)
11 Premier octet d'un caractère codé sur plusieurs octets
10 Octet appartenant à un caractère codé sur plusieurs octets

FST Tanger, K. EL MOKHTARI 9


Systèmes à microprocesseurs et à
microcontrôleurs

L'Unicode
L'UTF-8
Transformation inverse : Exemple
Trouver le texte correspondant à cette séquence :
44 C3 A9 6A C3 A0
01000100 11000011 10101001 01101010 11000011 10100000
01000100 11000011 10101001 01101010 11000011 10100000

1000100 00011101001 1101010 00011100000

0044 00E9 006A 00E0

D é j à

L'Unicode
L'UTF-8
Avantages
Compatibilité avec l'ASCII américain
Efficacité : occupe moins d'espace pour les caractères
latins
Codage auto-synchronisant : on peut identifier les
octets au milieu du texte
Inconvénients
Longueur variable  Traitement compliqué

FST Tanger, K. EL MOKHTARI 10


Systèmes à microprocesseurs et à
microcontrôleurs

Outils
Editeur hexadécimal
Permet d'afficher et modifier le contenu d'un
fichier en binaire
Exemple : HexWorkshop
Navigateur internet
Tag: <meta http-equiv="Content-Type"
content="text/html; charset=utf-8"/>
Remarque : on peut afficher un caractère en
unicode sur une page HTML en utilisant la
notation : &#code_en_décimal;
Exemple : 0x0643  &#1603;  ‫ك‬

FST Tanger, K. EL MOKHTARI 11

Vous aimerez peut-être aussi