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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    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
    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 confirmé
    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
    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 chevronné
    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
    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.

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, 16h22
  2. Réponses: 2
    Dernier message: 01/02/2008, 23h59
  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, 17h55
  4. Réponses: 1
    Dernier message: 03/08/2007, 11h09
  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, 19h45

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