2011-01-07 2 views
2

Ich verwendete this Lösung zum Lesen und Parsen eines RSS-Feeds von einer ASP.NET-Website. Das hat perfekt funktioniert. Wenn es jedoch auf einer anderen Site versucht wird, tritt ein Fehler auf, da "System 'utf8' Codierung nicht unterstützt". Unten habe ich einen Auszug meines Codes eingefügt.XML - Hilfe mit RSS UTF-8-Unterstützung

private void Form1_Load(object sender, EventArgs e) 
    { 
     lblFeed.Text = ProcessRSS("http://buypoe.com/external.php?type=RSS2", "ScottGq"); 

    } 

    public static string ProcessRSS(string rssURL, string feed) 
    { 
     WebRequest request = WebRequest.Create(rssURL); 
     WebResponse response = request.GetResponse(); 
     StringBuilder sb = new StringBuilder(""); 
     Stream rssStream = response.GetResponseStream(); 
     XmlDocument rssDoc = new XmlDocument(); 
     rssDoc.Load(rssStream); 
     XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item"); 
     string title = ""; 
     string link = ""; 
    ... 

Der Fehler tritt bei "rssDoc.Load (rssStream);". Jede Hilfe bei der korrekten Kodierung des XML wäre willkommen.

Antwort

3

den folgenden Code verwenden für die Codierung

System.IO.StreamReader stream = new System.IO.StreamReader 
        (response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8")); 
+0

Hmmm, und wo in meinem Code würde das gehen? Müssten auch andere Linien geändert werden? – Sticky

+1

öffentliche statische Zeichenfolge ProcessRSS (Zeichenfolge rssURL, Zeichenfolgenvorschub) { WebRequest-Anforderung = WebRequest.Create (rssURL); WebResponse Antwort = request.GetResponse(); StringBuilder sb = neuer StringBuilder (""); System.IO.StreamReader stream = neu System.IO.StreamReader (response.GetResponseStream(), System.Text.Encoding.GetEncoding ("utf-8")); XmlDocument rssDoc = new XmlDocument(); rssDoc.Load (rssStream); XmlNodeList rssItems = rssDoc.SelectNodes ("rss/channel/item"); Zeichenfolge title = ""; string link = ""; – Mahantesh

+0

Bingo, funktioniert wie ein Zauber! Vielen Dank! – Sticky