UTF-8 Konvertierung

MikeBi

Mitglied
Hallo,

ich frage mit einem Net.HttpWebRequest eine HTML-Steite ab. Den Inhalt der Seite analysiere ich dann und zeige einen Teil davon an. Leider wird die Seite im UTF-8 -Format übertragen und ich bekommeesmit den Convert-Methoden nicht hin den Text in Unicode umzuwandeln. Es werden mir z.B. immer noch Kästchen und für Sonderzeichen angezeigt. Wenn ich den Text im Internet Explorer mir anzeigen lasse, kann ich den Text mit Copy und Paste ordentlich kopieren.
Also meine Frage. Wie bekomme ich das richtig konvertiert.

Vielen Dank und guten Rutsch
Mike
 
Hi

Wie zeigst du denn den Text an? Und wie versuchst du ihn zu konvertieren? In .NET sind alle String schon per Default Unicode. Hast du das passende Encoding genutzt?
 
Hallo,

hier mal einen Auszug aus dem Quelcode.
Dim st As Net.WebResponse = Nothing
Dim sr As System.IO.StreamReader = Nothing
Dim result As String = ""

Dim req As Net.HttpWebRequest = Net.WebRequest.Create(url)

st = req.GetResponse
sr = New System.IO.StreamReader(st.GetResponseStream)

result = sr.ReadToEnd()
result = result.Substring(result.IndexOf("id=result_box"))
result = result.Substring(0, result.IndexOf("</div"))

In result sollte dann der String stehen.

Mike
 
Hi

Zum einen würde ich dir empfehlen, beim Konstruktor des StreamReaders das Encoding mit anzugeben.
Zum anderen wirst du die Sonderzeichen ersetzen müssen, da diese zum Html-Standard gehören und nicht zur Unicode-Kodierung.

Das mit dem result hab ich nicht verstanden, da fehlt mir der Bezug zum eigentlichen Thema :confused:

PS: Bitte setz Quellcode in entsprechende Tags, dass macht ihn lesbarer! Danke
 
Hallo,

die Angabe des Encoding beim StreamReader habe ich auch schon probiert. Hat aber nichts gebracht.
In result soll halt der String so stehen , das ich ihn in einer Textbox lesbar (für Menschen) anzeigen kann.

Mike
 
wie gesagt:
Die entsprechenden Html-Steuerzeichen musst du ersetzen mit der Replace-Methode.

Ggf hilft dir noch das WebBrowser-Control und die IHtmlElement-Schnittstellen (COM). Da ich nicht genau weiß, was du vor hast, kann es aber auch etwas Overhead sein
 

Neue Beiträge

Zurück