0% ont trouvé ce document utile (0 vote)
78 vues1 page

TP Encodage de Caractères Linux

Transféré par

condere
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
78 vues1 page

TP Encodage de Caractères Linux

Transféré par

condere
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd

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