Académique Documents
Professionnel Documents
Culture Documents
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.
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
#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) ?
4.2) Complétez le programme « compte.c » qui permet d’afficher, à partir d’une châne de caractères utf8 :
4.3) En vous servant du guide « algos », établissez en langage C les programmes de conversions utf8 vers unicode et unicode vers utf8.