Bonjour,
Pour me faciliter la tâche dans la rédaction de mon mémoire, j'ai décidé d'écrire un petit script Perl permettant de fournir les synonymes d'un mot entré en console.
Cependant, lors de l'entrée clavier du mot recherché, la console remplace les accents par les caractère 'C)' et cela limite ma recherche à tous les mots sans accents.
C'est assez limitatif ...
Pourriez-vous m'aider ?
Voici mon code :
Voici mes locales :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 use strict; use warnings; my %hash_dico; open(IN, "<", "thes_fr.dat") || die ("Erreur lecture"); my $count = 0; my $final = 72422; my $ligne1; my $ligne2; while(<IN>){ chomp; my $ligne = $_; if($ligne =~ /\|1$/){ $ligne =~ s/\|1//; $ligne1 = $ligne; } else{ $ligne2 = $ligne; if($ligne1){ $hash_dico{$ligne1} = $ligne2; } } $count++; # print $count . "/" . $final . "\n"; } close(IN); print "Dico synonyme opérationnel\n"; while(<STDIN>){ my $input = $_; chomp $input; if(exists $hash_dico{$input}){ my $output = $hash_dico{$input}; print $output . "\n"; } elsif($input eq "clear"){ # print "\033[2J"; } else{ print "Introuvable dans le dictionnaire\n"; } }
J'utilise une variante de Ubuntu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 LANG=fr_FR.UTF-8 LANGUAGE= LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL=
J'ai pourtant essayé avec le classique
Ou encore le fameux
Code : Sélectionner tout - Visualiser dans une fenêtre à part use locale;
Mais rien n'y fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 binmode(STDIN, ":utf8");
Avez-vous une idée??
Merci![]()
Partager