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

Modules Perl Discussion :

Perl, XML RPC et caractères spéciaux.


Sujet :

Modules Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 37
    Points : 34
    Points
    34
    Par défaut Perl, XML RPC et caractères spéciaux.
    Bonjour tout le monde.
    J'utilise un serveur XML RPC pour chercher des informations dans des fichiers XML. Ces fichiers XML sont des fichiers en français encodés en iso 8859-1 : il y a des caractères tels que :
    è,é,à,ç,...
    Le problèmes est quand je requete le serveur XML et que la réponse contient un de ces caractères spéciaux j'ai cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR : unknown procedure return value "
    not well-formed (invalid token) at line 1, column 358, byte 358 at /usr/lib/perl5/site_perl/5.8.0/RPC/XML/Client.pm line 345"
    La solution serait de transformer tous les caractères spéciaux en la lettre dont ils proviennent :
    é,è,...->e
    à->a
    etc...

    J'ai essayé mais je n'ai pas trouvé quel module en Perl pourrait faire ça. J'ai essayé à l'aide de Locale::Recode , mais je n'ai pas trouvé de bon codage ne sortie. Pour l'instant ma solution provisoire serait de convertir tout à la main, avec le code en dur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #All "e"
        $text =~ tr/\xE8/e/;
        $text =~ tr/\xE9/e/;
        $text =~ tr/\xEA/e/;
        $text =~ tr/\xEB/e/;
    Comme on est dans une requete XML RPC, je n'ai pas l'impression qu on puisse déclarer autre chose que la fonction principale. je ne trouve pasle codage en dur comme étant une bonne solution, voire meme une sale solution. Quelqu 'un aurait il une idée?

    Merci d'avance
    yanndan

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 37
    Points : 34
    Points
    34
    Par défaut
    Je poste ici une solution, ma fois relativement peu propre mais bon on fait ce qu on peut.
    En espérant que ça pourra aider des gens.

    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
     
     
                #"A"
                $text =~ tr/\xC0|\xC1|\xC2|\xC3|\xC4|\xC5/A/;
     
                #"AE"
                $text =~ tr/\xC6/AE/;
     
                #"C cedille
                $text =~ tr/\xC7/C/;
     
                #"E"
                $text =~ tr/\xC8|\xC9|\xCA|\xCB/E/;
     
                #"I"
                $text =~ tr/\xCC|\xCD|\xCE|\xCF/I/;
     
                #"O"
                $text =~ tr/\xD2|\xD3|\xD4|\xD5|\xD6/O/;
     
                #"U"
                $text =~ tr/\xD9|\xDA|\xDB|\xDC/U/;
     
                #All "a"
                $text =~ tr/\xE0|\xE1|\xE2|\xE3|\xE4|\xE5/a/;
     
                #"ae"
                $text =~ tr/\xE6/ae/;
     
                #"c cedille"
                $text =~ tr/\xE7/c/;
     
                #All "e"
                $text =~ tr/\xE8|\xE9|\xEA|\xEB/e/;
     
                #All "i"
                $text =~ tr/\xEC|\xED|\xEE|\xEF/i/;
     
                #All "o"
                $text =~ tr/\xF2|\xF3|\xF4|\xF5|\xF6/o/;
     
                #All "u"
                $text =~ tr/\xF9|\xFA|\xFB|\xFC/u/;
    yanndan

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Attention : le "|" n'est pas nécessaire, et représente même une erreur dans un "tr///".

    --
    Jedaï

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 37
    Points : 34
    Points
    34
    Par défaut
    merci.
    Je ne savais pas.

    merci encore.
    yanndan

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Petit tag résolu en cliquant sur le bouton
    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. Parsing d'un document XML : Problème des caractères spéciaux
    Par zomurn dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 18/08/2011, 16h50
  2. fichier xml et les caractére spéciaux
    Par dalilnet dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 23/09/2008, 14h53
  3. Flash, Xml et les caractères spéciaux
    Par babar17 dans le forum Flash
    Réponses: 2
    Dernier message: 14/06/2007, 19h08
  4. [XML] Problème de caractères spéciaux ( & )
    Par kenny49 dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 17/03/2007, 20h37
  5. [JDOM] Parser un xml contenant des caractères spéciaux
    Par Baptiste Wicht dans le forum Format d'échange (XML, JSON...)
    Réponses: 16
    Dernier message: 19/07/2006, 11h57

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