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 :

problème de codepage probablement, mais. . .


Sujet :

Langage Perl

  1. #1
    Membre habitué

    Homme Profil pro
    Statisticien
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 134
    Points
    134
    Par défaut problème de codepage probablement, mais. . .
    Bonjour,

    Je désire décomposer un chaine de caractère en lettre, et ce code marchait il y a quelques mois, et sans doute que j'ai du faire un update quelconque (debian/squeeze) qui fait qu'il ne fonctionne plus. J'imagine que c'est un problème de code page, mais je comprend pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      #!/usr/bin/perl
      $word_tmp="aë";
      while (length($word_tmp) > 0) {
              $word_tmp =~ s/(.)//;  # cherche un caractère, le supprime
              print "dollar 1 $1\n"     # et l'affiche
      }
    C'est pas la meilleure façon d'extraire des caractères, mais j'ai du simplifier un code plus compliqué pour remarquer qu'il me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dollar 1 a
    dollar 1 
    dollar 1 ?  # plus exactement un ? blanc dans un losange noir mais ce caractère ne passe pas sur le forum
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dollar 1 a
    dollar 1 ë
    Une idée ?

    Bien le merci.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 63
    Points : 75
    Points
    75
    Par défaut
    Hum je sais pas trop en regardant ton code mais tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my $word_tmp = "plop";
    my @word_tmp = split(//, $word_tmp); #Il me semble qu'en PERL il se fait comme ça, sinon remplace // par ""
     
    foreach (@word_tmp){ print $_; }
    Comme ça tu affiche tout les caractères un à un.

  3. #3
    Membre confirmé
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Oui, c'est un problème d'encodage. Tu n'as pas indiqué à ton script quel encodage tu utilises. Or par défaut perl travaille en ASCII; donc le point ne peut pas reconnaître le caractère 'ë', qui est apparemment encodé sur deux octets, que perl prend pour des caractères séparés.

    Quantactique a raison de dire que split // est une meilleure solution que ta façon de procéder, mais ça ne change rien à ton problème d'encodage, et la façon qu'il propose d'afficher le résultat met tout sur une seule ligne sans séparation, ce qui ne sert à rien.

    Quelle version de perl utilises tu ? Il y a eu des changements substantiels dans la gestion des encodages dans les dernières versions.
    There's nothing like $HOME!

Discussions similaires

  1. Problème de filtre ordinaire, mais ça ne marche pas chez moi
    Par mercure07 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/08/2008, 15h22
  2. Réponses: 2
    Dernier message: 01/02/2008, 22h59
  3. Problème Exécution en Release mais pas en Debug
    Par nono27200 dans le forum VB 6 et antérieur
    Réponses: 67
    Dernier message: 08/11/2007, 16h55
  4. Réponses: 1
    Dernier message: 03/08/2007, 10h09
  5. Problème de classes définies mais pas trouvées par g++
    Par Michaël dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 22/07/2007, 18h45

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