2016-05-13 4 views
1

Ich versuche, den HTML-Code einer Website in einer Zeichenfolge zu speichern. Die Website hat internationale Zeichen (ê, ś, ć, ...) und sie werden nicht in der Zeichenfolge gespeichert, obwohl ich die Kodierung auf UTF-8 gesetzt habe, die dem Zeichensatz der Webseite entspricht.WebClient DownloadString UTF-8 zeigt keine internationalen Zeichen an

Hier ist mein Code:

using (WebClient client = new WebClient()) 
{ 
    client.Encoding = Encoding.UTF8; 
    string htmlCode = client.DownloadString(http://www.filmweb.pl/Mroczne.Widmo); 
} 

Als ich „Htmlcode“ auf der Konsole zu drucken, werden die internationalen Zeichen nicht richtig, auch gezeigt, obwohl in der ursprünglichen HTML sie korrekt angezeigt werden.

Jede Hilfe wird geschätzt.

Antwort

4

Ich hatte das gleiche Problem. Es scheint, dass client.DownloadString die Zeichen, die UTF-8 verwenden, nicht codiert. Mit client.DownloadData und Codierung der zurückgegebenen Daten mit Encoding.UTF8.GetString das Problem lösen.

using (WebClient client = new WebClient()) 
{ 
    var htmlData = client.DownloadData("http://www.filmweb.pl/Mroczne.Widmo"); 
    var htmlCode = Encoding.UTF8.GetString(htmlData); 
} 
+0

leider funktioniert das immer noch nicht für mich. Es scheint, dass auch eine einfache Zeichenfolge specialChar = "ĉ" nicht funktioniert, also vermute ich, dass es ein Problem mit der Zeichenfolge ist? Ich weiß nicht viel über Kodierung, aber danke für die Antwort nichtsdestotrotz --EDIT-- Ich denke, es ist meine Druckmethoden, ich werde zu Ihnen zurückkommen, da dies die richtige Antwort sein könnte, die Sie mir gaben. – mrybak3

+0

Yup, das hat total funktioniert, danke! Ich ging gerade von der Konsolenausgabe, wenn es in der Form korrekt angezeigt wurde. Seltsam. Wie auch immer, danke! – mrybak3

+0

Gern geschehen, ich bin froh, dass Sie meine Antwort hilfreich fanden. –