78 lines
2.7 KiB
Plaintext
78 lines
2.7 KiB
Plaintext
![]() |
------ 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 affiche 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
|