WebClient GodLikeClient = new WebClient();
HtmlAgilityPack.HtmlDocument GodLikeHTML = new HtmlAgilityPack.HtmlDocument();
GodLikeHTML.Load(GodLikeClient.OpenRead("www.alfa.lt");
Also kommt dieser Code zurück: "Skaitytojo klausimas psichologui: kas lemia homoseksualumÃ" â € |? - Naujienâ € | portalas Alfa.lt "statt" Skaitytojo klausimas psichologui: kas lemia homoseksualumà ...? - Naujienų portalas Alfa.lt ".
Diese Webseite ist in 1257 (baltisch) kodiert, aber textBox1.Text = GodLikeHTML.DocumentNode.OuterHtml;
gibt den verzerrten Text zurück - baltische Diakritika werden in seltsame, mehrere Zeichen lange Strings umgewandelt :(
Und ja, ich habe die HtmlAgilityPack-Foren ausprobiert. Sie saugen.
PS Ich bin kein Programmierer, aber ich arbeite an einem Community-Projekt und ich muss diesen Code wirklich funktionieren lassen. Vielen Dank ;}
Tatsächlich ist die Seite mit UTF-8 codiert.
GodLikeHTML.Load(GodLikeClient.OpenRead("http://www.alfa.lt"), Encoding.UTF8);
wird funktionieren.
Oder Sie könnten den Code in meiner SO-Antwort verwenden, der die Kodierung von http-Headern oder Meta-Tags erkennt und diese korrekt neu codiert. (Es unterstützt auch gzip, um den Download zu minimieren).
Mit der Download-Klasse würde Ihr Code wie folgt aussehen:
HttpDownloader downloader = new HttpDownloader("http://www.alfa.lt",null,null);
GodLikeHTML.LoadHtml(downloader.GetPage());
Ich hatte ähnliche Codierungsprobleme. Ich habe es in der aktuellsten Version von HtmlAgilityPack korrigiert, indem ich zu meiner WebClient-Initialisierung folgendes hinzugefügt habe.
var htmlWeb = new HtmlWeb();
htmlWeb.OverrideEncoding = Encoding.UTF8;
var doc = htmlWeb.Load("www.alfa.lt");