------ TP03 -----


I. Reconstituer un texte à partir de son encodage utf-8.

Question : 
00000000 c2 a5 2c 20 e2 99 a0 2c 20 e2 84 97 2c 20 24 2c
00000010 20 c2 a3 2c 20 e2 82 ac 2c e2 98 bb 2c 20 61 72
00000020 65 20 6e 6f 74 20 61 6c 6c 20 63 75 72 72 65 6e
00000030 63 79 20 73 79 6d 62 6f 6c 73 2e 0a

Réponse : On convertit l'octet en binaire. Le nombre de 1 au début de l'octet correspond au nombre d'octets
nécessaire à la représentation du caractère. On omet les premiers 1 et tous les "10" au début de 
tous les autres octets. On regroupe ensuite le reste par par paquets de 4 bits en partant de la droite.
On obtient donc : 

¥, ♠, ⓟ, $, £, €, ☻, are not all currency symbols.



II. La commande read du shell.

Question 1 : Revoir dans le TP 02 comment faire pour accéder à la documentation d’une commande
interne au shell

Réponse : man



Question 2 : Revoir dans le TP 02 comment faire pour accéder à la valeur d’une variable du shell.

Réponse : echo $variable



Question 3 : Tester à la ligne de commande la saisie par read de la valeur d’une variable disons x.

Réponse : read affecte à la variable la valeur que l'on écrit dans le terminal après exécution de la commande



Question 4 : Quelle option donner à read pour faire précéder sa saisie par l’affichage à l’écran d’une
chaîne de caractères ?

Réponse : -r


III. Une commande pour afficher les caractères UNICODE.

Question 1 : Quelle option donner à echo pour qu’elle interprète les valeurs données en hexadécimal
comme les valeurs de caractères UNICODE ? Consulter la documentation appropriée.

Réponse : echo -e "\U2660"

Question 2 : En utilisant ce qu’on a appris dans la partie pr´ec´edente, ´ecrire une ligne de commandes
qui demande `a l’utilisateur de donner une valeur (en hexa), puis affiche le caract`ere
UNICODE correspondant.

Réponse : echo -n "Type an HEX UNICODE: " ; read x; echo -e "Corresponding CHAR: \U$x" 

Question 3 : Placer maintenant dans un fichier print_unicode_char, la ligne de commandes construite
pr´ec´edemment. Que faut-il faire pour pouvoir ex´ecuter print_unicode_char directement
comme une commande ?

Réponse : chmod u+x print_unicode_char ; ./print_unicode_char 

IV. Une commande pour afficher l’encodage utf-8 d’un texte.

Question 1 : Consulter la page du manuel de hexdump pour voir quelle option on lui a donn´ee dans
l’illustration de la partie I.

Réponse : hexdump -C ou -X

Question 2 : crire une ligne de commandes qui aﬃche en hexad´ecimal l’encodage utf-8 d’un caract`ere
donn´e dans la ligne de commande en hexad´ecimal par sa valeur. Quelle forme de lancement
est sugg´er´ee ici.

Réponse : echo -en "\U$1" | hexdump -X | head -n1 | cut -d' ' --complement -f1