[ASP/XMLHTTP] Probleem met é en ë *

Pagina: 1
Acties:

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
Door middel van dit stukje code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
' Create an xmlhttp object:
'Set xml = Server.CreateObject("Microsoft.XMLHTTP")
' Or, for version 3.0 of XMLHTTP, use:
 Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
' Opens the connection to the remote server.
oldtimer = timer
xml.Open "GET", "http://www.groningerdagblad.nl/ArtikelLijst/0,4601,20-1-2035-3476-100|,00.html", False

' Actually Sends the request and returns the data:
xml.Send
strResult = xml.responseText
Set xml = Nothing
timera = timer  - oldtimer

haal ik dus een pagina binnen. Echter het voorkomen van ë of é (etc.) gaat fout: Blang?iet krijg ik in plaats van Blangé ziet. Hoe los ik dit op? Heb al ff zitten zoeken, maar kon niet echt wat vinden op msdn

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 19-08 14:53
En als je de letters vervangt door een HTML-code? Dus é vervangen door iets als &...; ?

(Ik ken de codes niet uit mijn hoofd, zal zo even kijken)

edit: é is é . Zie ook http://hotwired.lycos.com/webmonkey/reference/special_characters/

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
daar ligt het niet aan, zodra je de variabele bekijkt die hij binnen haalt, staat het al verkeerd. En daar ik geen toegang heb tot de server waar het vandaan komt, lukt het dus niet om het naar HTML code over te zetten.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Heeft te maken met de encoding van de xml. Hoe je dat kan wijzigen en of dat uberhaupt kan als je je data via XMLHTTP binnenkrijgt weet ik niet
* Annie is een xml-n00b :o

Een eigen bestand kan je iig op onderstaande manier 'goed' krijgen:
<?xml version="1.0" encoding="ISO-8859-1"?>

Today's subliminal thought is:


Verwijderd

Je kunt volgens mij properties zetten mbt encoding van de spullen die je binnenhaalt. '?iet' lijkt me een rare verbastering van e accentecute.

offtopic:
Let er ook op dat er 13 feb j.l. patches zijn uitgebracht voor security leaks in de xmlhttp objects.

Verwijderd

MSXML wil intern graag met Unicode werken. Die "fout" van jou lijkt dat het UTF-8 is. In die unicode-variant wordt een A als A gecodeert, maar een e-met-streepje als 2 tekens.
Quote van MSDN
IXMLHTTP attempts to decode the response into a Unicode string. It assumes the default encoding is UTF-8, but can decode any type of UCS-2 (big or little endian) or UCS-4 encoding as long as the server sends the appropriate Unicode byte-order mark. It does not process the <? XML coding declaration. If you know the response is going to be XML, use the responseXML property for full XML encoding support.
Als het goed is staat in xml.responseHeader("Content-Type") de juiste encoding (charset=...).

Als je de data in een asp pagina toont, kun je dan bijvoorbeeld
Response.Charset="UTF-8" doen.

Laat je fff weten hoe het gaat?

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
het moet dus eigenlijk in een database gepropt worden, kan ik ook de server opdracht geven om char om te wisselen van mij input?

Verwijderd

Dan moet je waarschijnlijk converteren. SQL Server is standaard ISO-8859-1 (varchar, text) en kan ook Unicode aan (nvarchar, ntext).

Encodings vertalen kan op windows met MLang (van IE5.5).

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
probleem is dus dat xmlhttp direct al de onjuiste variabele terug geeft. Ik zou dus eigenlijk aan xmlhttp moeten aangeven dat ie iso-8859-1 moet gebruiken. De pagina die ik opvraag namelijk heeft die opmaakt ook(net als dus mySql)

Verwijderd

Het irritante is dat die xmlhttp alleen unicode teruggeeft. Volgens de docu levert .responseStream de response op in de originele encoding in een IStream object.

Hoe dat werkt weet ik niet...

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
hmm zal es gaan zoeken of er nog meer van dit soort componenten zijn die standaard geinstalled zijn

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
krijg het nog niet werkend, iemand nog ideeën?

  • Devilfish
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:32
het betreft dus een mysql database. (weet niet of dat uit maakt)

en die vraagtekens komen waarschijnlijk omdat ë niet voorkomt in de unicode tabel (andere tekst code).

weet iemand of er nog meer standaard geinstalleerde componenten zijn die een pagina binnen kunnen halen? mogelijk via een stukje visual basic code?

Verwijderd

Het beste wat je kunt doen is op zoek gaan naar een ander HTTP component.
Ikzelf baal er ook van, dat je in feite gedwongen wordt met Unicode te werken.

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Zo lukt het wel.

Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5")
objHTTP.Open "GET", strUrl, False
objHTTP.Send
strTemp = objHTTP.ResponseText
Set objHTTP = Nothing

weinig tot niks..

Pagina: 1