|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 7 ![]() |
Bonjour,
J'ai fait un script en VBscript pour récupérer le code source d'une page html. J'utilise pour cela l'objet XMLHTTP qui existe aussi en javascript. Mon problème c'est que cet objet ne me renvoie pas les caractères spéciaux : é,è,à... En javascript il les remplace par des ? et en VBscript par des blancs. Voici le fichier Test.vbs qui effectu la requête http et copie le code source dans un fichier test.txt : langue="fr" cpostal=35000 'Définition de l'URL meteoconsult avec les parametres à passer. url = "http://www.meteoconsult.fr/ter/france/prevision/moteur.php?langue=" & langue & "&saisie=" & cpostal 'Définition et envoie de la requette http. Set reqHttp = CreateObject("MSXML2.XMLHTTP.3.0") reqHttp.Open "Get", url, false reqHttp.setRequestHeader "content-type", "content=""text/plain; charset=UTF-8""" reqHttp.Send() 'Ecriture de la réponse (code source de la page) dans un fichier text. Set FSys = CreateObject("Scripting.FileSystemObject") set tsFile = FSys.CreateTextFile("test.txt", True, True) tsFile.Write reqHttp.responsetext tsFile.Close Set reqHttp = Nothing Je cherche quelqu'un qui pourrait m'expliquer pourquoi je n'est pas les caractères avec accents. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() |
mets ISO-8859-1 dans le charset au lieu de UTF-8
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 7 ![]() |
ça n'a pas fonctionné, je ne sais pas si le fait de définir un Header dans la requête influ sur le format de la réponse...
|
|
|
00
|
|
|
#4 | ||||
|
Membre actif
![]() Inscription : mai 2004 Messages : 166 ![]() |
ça peut peut-être venir de là .
Pour créer un objet xmlhttp Code :
Code :
|
||||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 7 ![]() |
J'ai suivie vos conseilles. J'avais aussi fait une erreur pour construir l'entête de la requete. Il fallait faire comme ceci :
reqHttp.SetRequestHeader "ContentType", "text/plain" reqHttp.SetRequestHeader "Charset", "iso-8859-1" Enfin j'ai vu que responsetext ne décode pas l'iso-8859-1 qui est le format de la page que je veut récupérer. J'ai lu ça sur MSDN : http://msdn.microsoft.com/library/de...24d269e7b6.asp Il y a la propriété responseBody qui permet de récupérer la réponse sous forme binaire mais je ne sais pas si il existe une fonction en VBscript pour décoder les données binaire en caractères ascii. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com