none
Problem beim Parsen von Umlauten RRS feed

  • Frage

  • Hallo Leute!

    Ich habe folgendes Problem:

    Beim Parsen der Schnittstelle http://www.linztermine.at/schnittstelle/downloads/events_xml.php kann ich die Umlaute nicht korrekt darstellen in meiner Windows Phone App.

    Code zum Parsen:

    /// <summary>
            /// Loads all events
            /// </summary>
            /// <param name="handler">callback</param>
            public void LoadEvents(EventHandler<ResponseEventArgs<IList<Event>>> handler)
            {
                try
                {
                    var c = new WebClient();
                    c.Encoding = Encoding.GetEncoding("iso-8859-1");
                    c.DownloadStringAsync(new Uri("http://www.linztermine.at/schnittstelle/downloads/events_xml.php"), handler);
                    c.DownloadStringCompleted += this.DownloadEventsCompleted;
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Problem while executing LoadEvents: " + ex.StackTrace);
                }
                
            }
    private void DownloadEventsCompleted(object sender, DownloadStringCompletedEventArgs e)
            {
                XmlReader r = XmlReader.Create(new MemoryStream(System.Text.UnicodeEncoding.UTF8.GetBytes(e.Result)));
                XDocument loadedData = XDocument.Load(r);
    
                var data = (from query in loadedData.Descendants("event")
                            select new Event
                            {
                                Id = (string) query.Attribute("id"),
                                Title = (string) query.Element("title"),
                                Description = (string)query.Element("description"),
                                OrganizerId = (string) query.Element("organizer").Attribute("id"),
                                LocationId = (string) query.Element("location").Attribute("id"),
                            }).ToList();
    
                var handler = (EventHandler<ResponseEventArgs<IList<Event>>>)e.UserState;
                handler(this, (data == null) ? new ResponseEventArgs<IList<Event>>("Error while requesting Events. Loading Events failed!") : new ResponseEventArgs<IList<Event>>(data));
            }

    Das Resultat sieht so aus:

    https://www.dropbox.com/s/jf045bhciwr9irf/test.jpg

    Bitte um dringende Hilfe!

    Danke!

    lg andi


    Mittwoch, 25. April 2012 06:47

Antworten

  • Ansonsten hast du in deinem Code zu viele Versuche, das Encoding festzulegen, obwohl WebClient schon einen String liefert, prüfe als Alternative, ob nicht

      XDocument loadedData = XDocument.Parse(e.Result);

    das gewünschte Ergebnis liefert.


    MVP Data Platform Development My blog

    Mittwoch, 25. April 2012 09:23

Alle Antworten