Au chapitre 1, nous avons vu comment nos appareils numériques encodaient les nombres. Qu'en est-il des caractères?
L'encodage des caractères en informatique est un système qui permet de représenter et manipuler les textes dans un format numérique, adapté pour le stockage et le traitement par les ordinateurs.
Cela inclut des standards variés pour coder différents ensembles de caractères utilisés dans les langues du monde.
Dans les années 1960, afin d'échanger du texte entre ordinateurs, il a été nécessaire de définir une façon commune d'encoder les caractères et d'avoir des standards.
L'un de ses premiers standards à se populariser fut le code ASCII (American Standard Code of Information Interchange).
Comme le nom l'indique, il fut à la base centré sur les échanges de caractères entre anglophones et donc ne comportait que très peu de caractères (128).
Il ne contient aucun accent européen, mais aussi aucun caractère asiatique etc.
(Lien wikipedia )L'impossibilité d'écrire les caractères européens non présents dans le code ASCII a poussé à la création de l'encodage ISO 8859-1 ou encore appelé latin-1.
Celui-ci contient non seulement les caracteres ASCII mais en plus les caractères nécessaires aux pays de l'Europe de l'ouest.
(Lien wikipedia )L'impossibilité d'écrire le caractère € a forcé à une nouvelle évolution : la création de l'encodage ISO 8859-15 ou encore appelé latin-9.
(Lien wikipedia )A copier dans le cahier.
La mondialisation de l'informatique ayant entrainé la création d'un trop grand nombre d'encodage différent pour s'adapter aux caractères locaux, une normalisation était nécessaire.
L'Unicode fut créé afin de normaliser au niveau mondial les caractères.
A tout caractère, le système Unicode y associe un nom et un identifiant numérique.
L'Unicode est donc simplement une grande table associant les caractères à un nombre mais ne se charge pas de la façon dont est encodé ce nombre.
(Une visualisation de la table )
Le début de la table Unicode est faite pour correspondre au code ASCII.
La fonction chr
prend en paramètre un integer et renvoie le caractère correspondant dans la table Unicode.
>>> chr(65)
'A'
La fonction ord
prend en paramètre un caractère et renvoie le nombre au format integer correspondant à ce
caractère dans la table Unicode.
>>> ord("A")
65
Compléter la fonction affiche_caracteres
qui prend deux integers a
et b
et qui affiche les
caractères entre le a
-ième caractère et b
-ième caractère de la table Unicode.
La fonction renverra None
.
Tests :
# Tests
Affichage :
Console:
A faire dans le cahier.
" "
.A copier dans le cahier.
L'unicode permet de faire correspondre à chaque caractère un nombre.
Il faut maintenant encoder ce nombre.
Il y a plusieurs façons de le faire mais la plus répandue est l'UTF-8.
Techniquement, il s’agit de coder les caractères Unicode sous forme de séquences de un à quatre octets..Les caractères correspondants à la classe ASCII sont par exemple codés sur un seul octet.
Tout comme l'UTF-8, l'UTF-16 permet d'encoder les nombres associés aux caractères de la table UNICODE mais d'une façon différente.
Techniquement, il s’agit de coder les caractères Unicode sous forme de séquences de deux à quatre octets.. Mais la grande présence de caractères ASCII dans les langages le rend moins pertinent que l'UTF-8.