Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2007, 10h48   #1
Yo.
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 1
Points : 1
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 :
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 :
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 :
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 :
Response.ContentType = "text/html; charset=iso-8859-1"
ce qui ne change rien.

Et aussi avec :

Code :
monxmlhttp.setRequestHeader "Content-Type", "text/html; charset=iso-8859-1"
Mais j'ai alors le retour d'erreur suivant :

Code :
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…)
Yo. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 12h43   #2
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

ton header, ce ne serait pas plutot :
Code :
monxmlhttp.setRequestHeader "Content-Type", "text/xml; charset=iso-8859-1"
piste : As tu essayé d'"échapper" les caractères ? (fonction escape en javascript) ?
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 14h43   #3
Yo.
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 1
Points : 1
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...
Yo. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 15h07   #4
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
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)
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2007, 14h59   #5
Yo.
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 1
Points : 1
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 !
Yo. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2009, 16h40   #6
Membre habitué
 
Avatar de richard_sraing
 
Homme Raphaël
Responsable de service informatique
Inscription : avril 2005
Messages : 374
Détails du profil
Informations personnelles :
Nom : Homme Raphaël
Localisation : Belgique

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

Informations forums :
Inscription : avril 2005
Messages : 374
Points : 121
Points : 121
Envoyer un message via MSN à richard_sraing
Mouarf, je cherche depuis une semaine pratiquement pourquoi je récupère des choses bizarre dans mes appel via l'Ajax.

le code
Code :
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
richard_sraing est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h23.


 
 
 
 
Partenaires

Hébergement Web