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

ASP Discussion :

Problème d'accents dans flux XMLHTTP


Sujet :

ASP

  1. #1
    Yo.
    Yo. est déconnecté
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème d'accents dans flux XMLHTTP
    Bonjour,

    Mon premier problème a été le suivant, je dois lancer un exécutable en lui spécifiant des paramètres contenant des accents dans l'URL.
    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://domaine.net/monexec.exe?param=parmètre&prama2=paramètre2
    L'exécutable renvoie une page HTML formatée en fonction de ces paramètres.
    Mais Firefox encode systématiquement les accents dans l'URL, du coup, les paramètres changent et ma page ne s'affiche plus correctement.
    Mon url devient ça sous Firefox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://domaine.net/monexec.exe?param=parm%E8tre&prama2=param%E8tre2
    N'ayant absolument aucun moyen de modifier l'exe et donc ne pouvant pas changer le fait que les paramètres sont accentués (ce qui est bien moche j'en conviens), j'ai mis en place un script qui récupère le code renvoyé par mon exe et l'affiche.
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    thisURL = "http://domaine.net/monexec.exe?param=1&prama2=2"
     
     Set monxmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
     
     monxmlhttp.Open "get", thisURL, False
     monxmlhttp.Send 
     
     mapage = monxmlhttp.responseText
     
     Response.write (mapage)
     
     Set monxmlhttp = Nothing
    De cette manière, je n'ai plus l'encodage de mes paramètres par Firefox.

    Mais un nouveau problème se pose car les accents ne semblent pas gérés dans le flux qui m'est retourné. Ils sont remplacés par des « ? ».
    J'ai essayé de spécifier mon encodage de caractère de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.ContentType = "text/html; charset=iso-8859-1"
    ce qui ne change rien.

    Et aussi avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monxmlhttp.setRequestHeader "Content-Type", "text/html; charset=iso-8859-1"
    Mais j'ai alors le retour d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    msxml3.dll error '80004005'
    Erreur non spécifiée
    Le serveur est sous Windows 2000. Ce retour d'erreur me laisse penser que c'est la version du parser XML qui n'est pas à jour mais je ne peux absolument pas faire de modification dessus.

    Je suis dans un environnement très contraignant (impossible de modifier mon exe, ni avoir la main sur le serveur, etc), et ça devient difficile pour moi de trouver une solution simple à mon problème premier (problème d'encodage dans l'URL).
    N'étant pas expert en ASP, j'espère que peut être quelqu'un aurait une idée lumineuse pour résoudre / contourner ce problème... Sachant que j'ai pu passer à côté d'une solution simple...

    Merci par avance.

    (Dites moi si certains détails manquent à la compréhension de mon problème…)

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    ton header, ce ne serait pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monxmlhttp.setRequestHeader "Content-Type", "text/xml; charset=iso-8859-1"
    piste : As tu essayé d'"échapper" les caractères ? (fonction escape en javascript) ?


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    Yo.
    Yo. est déconnecté
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci roro06 d'avoir pris le temps de te pencher sur mon problème.

    A priori c'est le

    qui ne lui plait pas. J'ai toujours le même message d'erreur quelque soit son contenu. De plus, le flux qui m'est renvoyé ne contient pas de XML mais bien du HTML. (j'ai tout de même essayé ton code par acquis de conscience)

    Sinon pour la solution d'échapper les caractères en javascript, j'y ai effectivement pensé mais je ne peux le faire a aucun moment de mon process.
    Soit je charge directement l'exe par l'URL et dans ce cas c'est Firefox directement qui encode les caractères dans l'URL (je ne peux rien faire pour l'en empecher).
    Soit je "tape" sur mon exe par ma page asp (évitant ainsi l'encodage de Firefox) mais dans ce cas mon flux de retour contient des ?, quelque soit les accents...
    Je ne vois donc pas quand je pourrais échapper les caractères...

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Désolé, j'avais mal lu ton problème (qui n'est pas courant, convenons-en )

    autre piste : rajouter
    Response.Charset="iso-8859-1"

    (sans grande conviction, honnètement)


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  5. #5
    Yo.
    Yo. est déconnecté
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bon, finalement, j'ai fini par apprendre que le composant "Coalesys HTTP Client" se trouvait installé sur le serveur.
    Il m'a permis de traiter ma récupération du flux sans souci...

    Encore merci roro06 !

  6. #6
    Membre habitué Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Points : 182
    Points
    182
    Par défaut
    Mouarf, je cherche depuis une semaine pratiquement pourquoi je récupère des choses bizarre dans mes appel via l'Ajax.

    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.charset="iso-8859-1"
    fallait y penser.

    Je l'ai simplement rajouter dans mes page asp appelée par mes fonctions Ajax,et maintenant, tout baigne...

    merci roro06
    First step: F.A.Q.
    Second step: Forum -> Recherche
    Thrid step: Forum -> Poser une question
    Fourth step: Forum -> Attendre une réponse
    Fifth step: Forum -> Remercier les personnes ayant répondu et signaler comme résolu

    Simple non ? l'utilisation de developpez.com

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

Discussions similaires

  1. Problème d'accent dans une base
    Par mLk92 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 28/07/2006, 19h34
  2. problème d'accent dans une chaine
    Par dom_dev dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2006, 10h33
  3. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2006, 14h38
  4. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2006, 14h48
  5. Réponses: 8
    Dernier message: 15/11/2005, 18h06

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