Jag hämtar ner en hemsidas källkod med denna kod: sidan du laddar hem är utf-8 kodad, men du hanterar inte det.. Okej, har du nån aning hur jag ska göra det? :) Är sidan korrekt på så sätt att den anger att texten är UTF8? Det är en RSS-feed jag hämtar. I den står det "<?xml version="1.0" encoding="UTF-8" ?>". Då är nog Microsofts XML biblitek ett mycket bättre alternativ än INet kontrollen. Följande exempel hämtar ut nyheterna på Pellesoft och skriver ut dem i debug konsolen:Konstiga tecken när jag hämtar HTML-kod
___________________________________________________________
Private Sub Command1_Click()
Inet1.Execute "http://www.hemsida.com", "GET"
Text1 = Replace(Text1, vbCrLf, "<BR>")
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim strChunk As String
Select Case State
Case icResponseCompleted
Do
Text1.SelText = strChunk
strChunk = Inet1.GetChunk(1024, icString)
Loop While Len(strChunk)
Text1.Enabled = True
End Select
End Sub
___________________________________________________________
Resultatet blir såhär: http://i10.tinypic.com/2zgub7k.png
Det kommer massa konstiga tecken och inga radbyten finns med.
Varför blir det så och hur fixar jag det?Sv: Konstiga tecken när jag hämtar HTML-kod
Sv:Konstiga tecken när jag hämtar HTML-kod
edit: Har googlat som en tok och inte hittat någon som kan hjälpa mig.
Ingen som vet?Sv: Konstiga tecken när jag hämtar HTML-kod
Jag gjorde ett snabbt test med Microsofts XML bibliotek:
Dim request As XMLHTTP
Set request = New XMLHTTP
request.open "GET", "http://www.columbia.edu/kermit/utf8.html", False
request.send
Text1.Text = request.responseText
Sv:Konstiga tecken när jag hämtar HTML-kod
Sv: Konstiga tecken när jag hämtar HTML-kod
Sv:Konstiga tecken när jag hämtar HTML-kod
Private Sub Form_Load()
Dim Doc As MSXML2.DOMDocument
Dim Channel As IXMLDOMNode
Set Doc = New MSXML2.DOMDocument
Doc.async = False
If Doc.Load("http://www.pellesoft.se/services/newsfeeder.aspx") Then
For Each Channel In Doc.selectNodes("/rss/channel")
WriteChannel Channel
Next
End If
End Sub
Private Sub WriteChannel(Channel As IXMLDOMNode)
Dim Item As IXMLDOMNode
Debug.Print Channel.selectSingleNode("title").Text
For Each Item In Channel.selectNodes("item")
WriteItem Item
Next
End Sub
Private Sub WriteItem(Item As IXMLDOMNode)
Debug.Print , Item.selectSingleNode("title").Text
End Sub