IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Entrée STDIN - Linux : Problème accents


Sujet :

Langage Perl

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 26
    Par défaut Entrée STDIN - Linux : Problème accents
    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 :
    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";	
    	}
    }
    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
    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'utilise une variante de Ubuntu.

    J'ai pourtant essayé avec le classique
    Ou encore le fameux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        binmode(STDIN, ":utf8");
    Mais rien n'y fait.

    Avez-vous une idée??

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 26
    Par défaut
    J'ai trouvé.
    Le problème venait de la gestion des accents dans le shell lui-même.

    J'ai rajouté cette ligne dans le fichier .bashrc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Pour permettre de taper des caractères accentués dans le shell :
    bind 'set convert-meta off'
    Bonne soirée à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Bug] Problème accent sous Linux
    Par millie dans le forum Millie
    Réponses: 6
    Dernier message: 13/12/2008, 00h32
  2. Entier 64 bits sous linux, problème d'affectation
    Par Steki-kun dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 22h10
  3. [Linux]Problème System.out.println + compiler
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 23h05
  4. [Linux]probléme d'installation
    Par rahmouni ali dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/07/2004, 12h26
  5. [Zip] Problème accent et zip
    Par MrEddy dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/06/2004, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo