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

WinDev Discussion :

HttpRequête et UTF8 [WD15]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut HttpRequête et UTF8
    Bonjour,

    Voici mon problème, en gros j'essaye de faire un système de synchronisation personnalisé en passant par des requêtes HTTP pour un logiciel multilingue "non Unicode" (tout est géré en ANSI par WinDev), et j'ai :
    1. Un server ASP.Net local qui me permet de voir ce qui est reçu
    2. Une application déjà existante WinDev qui envoie des requêtes, où tout fonctionnait bien jusqu'à récemment (la programmation de l'envoi des requêtes n'a pas changé depuis, j'avais simplement mis à jour WinDev et ça semble le faire depuis)

    La requête est comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ResLancement est un booléen  = HTTPRequête(sSite+"/Default.aspx","application","",ChaîneVersUTF8("valeur="+SAI_Valeur))//sToBeSent est une chaîne = 
    SI ResLancement = Vrai ALORS
    	Info(HTTPDonneRésultat())
    FIN
    SAI_Valeur est un champ classique (Unicode non activé) et je mets la valeur de test "héhé" dedans pour tester la transmission des caractères accentués.

    Côté serveur, voici ce que je reçois avec mon application qui était déjà existante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Request.Form["valeur"]	"hΘhΘ"	string
    Alors au début je me suis dit, c'est peut être la faute d'une configuration de ASP.Net, j'ai donc recréé un projet ASP.Net quasi vide avec une instruction du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.Form["valeur"] == null)
                    h2Instance.InnerText = "Rien n'a été reçu.";
                else
                    h2Instance.InnerText = Request.Form["valeur"];
            }
    Et malheureusement pour moi, même résultat.

    Ensuite je recréé une application Windev VIDE avec seulement un champ et un bouton qui exécute le traitement donné en premier... et ça marche parfaitement, résultat reçu du côté serveur:
    Request.Form["valeur"] "héhé" string
    Bref c'est très simple, le code est le même, il n'y a aucun paramètre spécifique à fournir à Windev pour la transmission de données accentuées (UTF8/Unicode) dans le fichier d'aide.
    Si j'enlève ChaîneVersUTF8() de HttpRequête cela donne ceci au niveau du serveur ASP.Net (ce qui semble normal) :
    Request.Form["valeur"] "h�h�" string
    À moins que je n'ai pas compris quelque chose (à vous de me le dire peut être ai-je mal compris un paramètre d'encodage quelconque, mais j'en doute), j'ai deux projets (dont la méthode d'encodage n'est pas définissable au niveau de WinDev) qui ont le même code mais qui ne fonctionnent pas de la même manière...

    Maintenant je ne peux plus mettre à jour mon application tant que je n'ai pas trouvé la solution, car tout mon code même ancien ne fonctionne plus et renvoie des icônes du genre "Θ" à mon serveur ASP.Net de gestion de licences (entre autres)...

    Mon seul doute actuellement c'est qu'une des dernières mises à jour de WinDev a créé ce problème? Car je n'ai vraiment rien trouvé du côté configuration de WinDev... et c'est le seul qui visiblement pose problème!

    Merci d'avance pour votre aide si vous avez des suggestions elles sont les bienvenues, je ne vois plus quoi faire...

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Par défaut
    Bonjour,

    plusieurs questions me viennent à l'esprit :

    Quelle version de Windev utilises-tu ?
    Dans ton projet migré, est-ce que le framework a été mis à jour aussi (dll wd150com.dll entre autres) ?

    Si avec un projet vide de contenu, ça marche derrière un bouton, je parierais plus sur un paramètre de projet qui ne convient plus. Maintenant je ne maitrise pas du tout les requêtes HTTP donc je ne saurais pas où regarder !

    Ce qu'il faudrait regarder si le paramètre ne ressort pas, c'est que qui est nécessaire au projet vide dans la génération de l'exe (sans changer aucune option et en notant tout ce qui est par défaut) et utiliser les mêmes options dans ton projet lorsque que tu regénère son exe pour voir si ces requêtes fonctionnent à nouveau. Ensuite, il faut rajouter ce qui est indispensable au reste du projet.

    à bientôt,

    Nicolas

  3. #3
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut
    Merci pour ta réponse!

    Citation Envoyé par Nicolas_Jeanneau Voir le message
    Quelle version de Windev utilises-tu ?
    V15, la dernière sous-version actuellement disponible.
    Citation Envoyé par Nicolas_Jeanneau Voir le message
    Dans ton projet migré, est-ce que le framework a été mis à jour aussi (dll wd150com.dll entre autres) ?
    Je teste directement via WinDev, il n'a donc pas besoin de ces dlls là car il utilise les propres dlls de windev en mode test il me semble, en tout cas oui, toutes mes dlls dans le répertoire du projet sont en version 15.

    Citation Envoyé par Nicolas_Jeanneau Voir le message
    Ce qu'il faudrait regarder si le paramètre ne ressort pas, c'est que qui est nécessaire au projet vide dans la génération de l'exe (sans changer aucune option et en notant tout ce qui est par défaut) et utiliser les mêmes options dans ton projet lorsque que tu regénère son exe pour voir si ces requêtes fonctionnent à nouveau.
    Il n'y a aucune création d'executable ici, tout est en mode test au niveau de windev (debug mode), bref aucune génération de nécessaire à mon avis, de plus si jamais une option (par cela je suppose que tu veux parler des DLLs utilisées/intégrées dans l'exécutable?) du genre DLL posait problème, cela devrait être du "tout ou rien"? Car là la fonction httprequête est fonctionnelle mais elle ne fait que bugger dans le sens où elle ne transfère pas correctement les caractères qui sont accentués ou non standard (non anglais), le reste est bien envoyé comme il se doit, bref j'ai 98% de mes données qui sont correctes sauf les accents/caractères spéciaux, et ce 2% me nuit énormément car en fonction du langage le pourcentage d'erreurs pourrait "exploser" (le langage grec par exemple).
    Ou bien c'est la fonction d'encodage (chaineversutf8) qui ne marche pas correctement Je ne sais plus trop...

    EDIT : De plus côté options de projet, j'ai vérifié et il n'y a pas grand chose. La création d'exécutable n'est même pas une étape envisagée actuellement vu que la version en mode debug créée par windev je-ne-sais-trop-où ne fonctionne pas.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 58
    Par défaut
    et si tu fais un UTF8versChaine()/ChaineversUTF8() sur ton texte récupéré, ca donne quoi ?

  5. #5
    Membre éclairé Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Par défaut
    Trouvé grâce au support gratuit de PCSoft (bon j'ai 3-4 autres bugs qu'ils ont vraiment constaté mais ceux là ne me dérangent pas vraiment)... et franchement j'ai presque honte

    C'était l'alphabet qui était anglais alors même si les champs affichent correctement les accents vu que l'alphabet n'était pas en mode Français la fonction chaineversutf8 n'avait pas un bon encodage au départ, et ne pouvait donc pas envoyer les accents.
    Logique.

    Rah parfois je fais pitié
    Voilà ce que travailler avec plein de langues en même temps donne

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

Discussions similaires

  1. [FLASH MX2004 PRO] Décodage de l'utf8
    Par Typhlosion dans le forum Flash
    Réponses: 2
    Dernier message: 23/04/2005, 18h54
  2. Migration Oracle 8i WE8DEC => Oracle 9i UTF8
    Par stawen dans le forum Oracle
    Réponses: 3
    Dernier message: 06/01/2005, 10h44
  3. Réponses: 5
    Dernier message: 19/11/2004, 19h16
  4. Convertir une chaine UTF8 en ISO-8859-1
    Par eods dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/08/2004, 16h57
  5. Réponses: 2
    Dernier message: 23/06/2004, 16h06

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