Vous êtes sur la page 1sur 1

TP encodage des caractères

1) Avec un éditeur de texte « suffisamment évolué » sous Linux (xed, geany, sublime text, ou autre), vous enregistrerez deux
fichiers contenant la même chaîne de caractère « Voilà 100 € » dans deux encodages différents, en respectant le nommage
des fichiers suivant :

• en UTF-8 : utf8.txt
• en ISO-8859-15 : latin9.txt

2) Avec la commande file, puis la commande xxd, vous analyserez le contenu de ces deux fichiers.

• Commentez la taille de ces fichiers par rapport à la longueur de la chaîne de caractères


• Vérifiez que les caractères appartenant au code ASCII sont codés de manière identique
• Commentez particulièrement le codage des caractères non ASCII « à » et « € »

3) Effectuez « à la main » le codage binaire UTF8 du caractère « € » en utilisant le tableau suivant, et sachant que le point de code unicode
hexadécimal de ce caractère est U+20AC :

Bits Dernier point de code Octet 0 Octet 1 Octet 2 Octet 3 Octet4 Octet 5
7 U+7f 0xxxxxx
11 U+7ff 110xxxxx 10xxxxxx
16 U+ffff 1110xxxx 10xxxxxx 10xxxxxx
21 U+1fffff 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+3ffffff 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+7fffffff 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

• Vérifiez que votre résultat est exact après avoir converti votre code binaire en hexadécimal, Utilisez pour cela à nouveau la commande xxd -g
1 utf8.txt

4) langage C et chaînes de caractère UTF8.

4.1) Éditez (en copiant-collant), compilez puis exécutez le programme suivant :

#include <stdio.h>

int main()
{
FILE *fichier = fopen("texte.txt", "w");
fputs("A é ⁂ 😀", fichier);
fclose(fichier);

return 0;
}
• Visualisez result.txt avec la commande cat, puis analysez son contenu avec file puis xxd. Sur combien d’octets sont codés chacun des
quatre caractères (on ne considère pas les espaces) ?

• Retrouvez leurs points de code UNICODE respectifs en utilisant le tableau de la question 2.


Passez par les octets exprimés en binaire.

• Retrouver pour chaque caractère sa documentation complète sur Wikipédia,

4.2) Complétez le programme « compte.c » qui permet d’afficher, à partir d’une châne de caractères utf8 :

• le nombre de caractères codés sur 1 octet

• le nombre de caractères codés sur 2 octets

• le nombre de caractères codés sur 3 octets

• le nombre de caractères codés sur 4 octets

4.3) En vous servant du guide « algos », établissez en langage C les programmes de conversions utf8 vers unicode et unicode vers utf8.

Voici quelques exemples d’exécution pour chacun d’entre eux :

Vous aimerez peut-être aussi