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

Services Web Discussion :

Caractères speciaux illisibles


Sujet :

Services Web

  1. #1
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut Caractères speciaux illisibles
    Bonjour, j'ai crée un webservice en C#(.net)
    Le webservice recoit des parametres et les traite ensuite.
    Je l'ai testé avec un petit programme en C#(.net). Tout fonctionne bien.

    Le probleme est quand je le teste en Windev (10), les parametres receptionnes par mon webservice sont encodés (????????? à la place des caracteres français é è à ç )

    Et je sais que ca va etre utilisé par developpeurs windev.

    Comment je peux decoder mes parametres?

    Merci

  2. #2
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    D'après ce que j'ai pu comprendre, windev envoie une demande en format XML ISO-8859-1 et web service est en UTF-8

    Mais je n'arrive toujours pas à convertir

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Pingva,

    les paramètres dans le service web, tu les reçois avec le méthode POST ou GET? Si par POST, tu peux utiliser la Encoding et l'affecter ensuite à l'objet httprequest.

    Cédric

  4. #4
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Salut Cédric,
    merci pour la réponse.
    D'après ce que j'ai compris, le Windev envoie la requete par POST.

    utiliser la Encoding et l'affecter ensuite à l'objet httprequest
    il faut que je le fasse au niveau de mon service web (qui est en .net) ?

  5. #5
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sRequete=XMLConstruitChaîne(doc)
    sRequete = Remplace(sRequete,"ISO-8859-1", "utf-8")
    SOAPExécuteXML("http://monsite/monService.asmx",sRequete,"http://tempuri.org/MonService")
    j'ai essayé de modifier "brutalement" le fichier xml que windv génère
    je remplace ISO-8859-1, par utf-8

    Mais cela ne donne aucun resultat

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Pingva,

    Faire comme ceci, cela ne fonctionne certainement pas

    l'objet sRequete est un string ou c'est autre chose? Dans ton objet XMLConstruitChaîne ast-tu la possiblité de changer l'encoding comme un objet de type XmlDocument?

    Cédric

  7. #7
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    oui sRequete c'est une chaine

    Normalement je ne developpe meme pas en Windev, mon role c'est de faire un service web en C# (.net)

    J'ai commencé à regarder un peu le code windev, parce que ca ne fonctionne pas.


    Voici comment cette chaine est construite.
    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
     
    doc est une chaîne
    XMLDocument(doc)
    XMLAjouteFils(doc,"soap:Envelope","",Vrai)
    XMLAjouteAttribut(doc,"xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/")
    XMLAjouteAttribut(doc,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
    XMLAjouteAttribut(doc,"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
    XMLAjouteAttribut(doc,"xmlns:xsd","http://www.w3.org/2001/XMLSchema")
    XMLAjouteAttribut(doc,"xmlns:tns","http://tempuri.org/")
    XMLAjouteAttribut(doc,"xmlns","http://tempuri.org/")
    XMLAjouteFils(doc,"soap:Body","",Vrai)
    XMLAjouteAttribut(doc,"soap:encodingStyle","http://schemas.xmlsoap.org/soap/encoding/")
     
    XMLAjouteFils(doc,"tns:EnvoyerMail","",Vrai)
    XMLAjouteFils(doc, "pAdrExp", pAdrExp)
    XMLAjouteFils(doc, "pExp", pExp)
     
    sRequete est une chaîne
    sRequete=XMLConstruitChaîne(doc)
    A vrai dire j'esperais de faire quelque chose au niveau de WebService, et pas au niveau de windev

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Est-ce que dans l'objet

    tu n'aurrais pas le moyen d'ajouter un truc ressemblant à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ....
    XmlDeclaration xmlDecl;
    xmlDecl = doc.CreateXmlDeclaration("1.0", enc.BodyName, null);
    ...
    Cédric

  9. #9
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Cedric, pour l'instant je ne voie pas comment, car le windev je ne maitrise pas.

    Je pensais que la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XMLAjouteAttribut(doc,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
    faisait l'equivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlDecl = doc.CreateXmlDeclaration("1.0", enc.BodyName, null);

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Pingva,

    Est-ce que dans l'objet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XMLAjouteAttribut(doc,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
    aurais-tu de le moyen d'indiquer l'encodein "ISO-8859-1" ou "UTF-8"?

    Cédric

  11. #11
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Salut Cedric
    J'ai fait quelques tests en windev en j'ai decouvert la chose suivante :
    Avant d'envoyer ma requete vers le service web, j'enregistre le fichier XML reçu sur mon disque dur.
    Par défaut, à la place de mes caracteres accentué j'ai éèçà ôù

    Si dans le fichier XML obtenu je remplace la chaine "ISO-8859-1" en "UTF-8", mon fichier XML est correct, j'ai "éèçàôù"

    Donc, le fichier part correct vers le web service. Mais à la reception j'ai toujours des "??????????"

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Pingva, je te propose d'essayer d'utiliser l'objet StreamReader dans lequel tu peux indiquer l'encoding comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Encoding gEnc = Encoding.GetEncoding("UTF-8");
    StreamReader read = new StreamReader(@"c:\windev.xml", gEnc);
    Est-ce cela fonctionner maintenant!

    Cédric

  13. #13
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Désolé, Cedric, je n'ai pas compris en quel moment il faudrait utiliser ces instructions.

    Car ce fichier je l'ai ecrit juste pour voir de quoi a l'air mon fichier XML.

    Avec StreamReader je pourrais le lire, mais je ne saurais pas appeler le web service, je ne voie pas comment.

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Tu peux utiliser StreamReader dans la méthode du WebServices écrit en c# qui est appelé depuis Windev.
    Enfin, est-ce que tu peux modifier le code du WebService?

    Cédric

  15. #15
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Citation Envoyé par Cédric B. Voir le message
    Enfin, est-ce que tu peux modifier le code du WebService?

    Cédric
    oui oui, bien sur, ca je peux faire

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Pingva,

    Bon si tu peux modifier le code, alors déclare un objet de type StreamReader dans ton Service Web qui s'occuper de charger ton paramètre que tu reçopis de Windev dans le bon encoding, peut être que là, cela fonctionnera!

    Cédric

  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Pingva,

    As-tu trouvé une solution à ton problème???

    Cédric

  18. #18
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Voici mes nouvelles à propos de l'encodage : nous avons contacté le support de Windev, et apparemment c'est un bug de version 10 et 12



    Bonjour XXXXX,
    La version 12 effectivement ne propose pas de réglage pour l'encodage de la réponse. Une suggestion en ce sens avait été transmise à notre équipe Développement et notre équipe Qualité, et de nouvelles implémentations ont été faites en version 15 de WINDEV.

    Je vous recommande donc vivement de poursuivre ces développements avec la version 15 de WINDEV, afin de profiter de ces évolutions, et de toutes les nouveautés.

    L'équipe du Support Technique Gratuit reste à votre disposition.

  19. #19
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Pingva,

    heureux d'apprendre c'est un bug et que cela se résoudra avec l'installation de la version 15 de WinDev.

    Alors je te souhaite un bon développement et bonne chance pour la suite...

    Cédric

  20. #20
    Membre confirmé Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Par défaut
    Merci Cédric

Discussions similaires

  1. Insertion caractères speciaux
    Par Halukard dans le forum Access
    Réponses: 3
    Dernier message: 19/02/2007, 11h46
  2. [C# 2.0]Problème de caractères speciaux
    Par Tatanne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2006, 02h51
  3. Probleme de lecture d'un fichier avec caractères speciaux
    Par bygui dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 26/06/2006, 09h35
  4. Caractéres speciaux
    Par cerede2000 dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2006, 15h11
  5. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48

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