HtmlAgilityPack - Festlegen der benutzerdefinierten Codierung beim Laden von Seiten

c# encoding html-agility-pack load wpf

Frage

Ist es möglich, beim Laden von Seiten mit der folgenden Methode eine benutzerdefinierte Codierung festzulegen?

HtmlWeb hwWeb = new HtmlWeb();
HtmlDocument hd = hwWeb.load("myurl");

Ich möchte die Codierung auf "iso-8859-9" setzen.

Ich benutze C # 4.0 und WPF.

Bearbeiten: Die Frage wurde auf MSDN beantwortet.

Akzeptierte Antwort

Ich nehme an, Sie könnten versuchen, die Codierung im HtmlWeb Objekt zu HtmlWeb .

Versuche dies:

var web = new HtmlWeb
{
    AutoDetectEncoding = false,
    OverrideEncoding = myEncoding,
};
var doc = web.Load(myUrl);

Hinweis: Die OverrideEncoding Eigenschaft wurde anscheinend in der Version 76610 dem HTML-Agilitätspaket hinzugefügt, sodass sie in der aktuellen Version 1.4 (66017) nicht verfügbar ist. Die nächste beste Lösung wäre, die Seite manuell mit den überschriebenen Codierungen zu lesen.


Beliebte Antwort

var document = new HtmlDocument();

using (var client = new WebClient())
{
    using (var stream = client.OpenRead(url))
    {
        var reader = new StreamReader(stream, Encoding.GetEncoding("iso-8859-9"));
        var html = reader.ReadToEnd();
        document.LoadHtml(html);
    }
}

Dies ist eine einfache Version der hier beantworteten Lösung (aus einigen Gründen wurde sie gelöscht)



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum