Laden...

[gelöst] Encoding in XML Datei (XmlDocument.LoadXml)

Erstellt von Riv3r vor 14 Jahren Letzter Beitrag vor 14 Jahren 3.789 Views
R
Riv3r Themenstarter:in
206 Beiträge seit 2007
vor 14 Jahren
[gelöst] Encoding in XML Datei (XmlDocument.LoadXml)

verwendetes Datenbanksystem: XML

Hallo Forum,

ich lese mit diesem Code


            XmlDocument dc = new XmlDocument();
            using (WebClient wb = new WebClient())
            {
                dc.LoadXml(wb.DownloadString(searchURL));
            }

eine XML-Datei einer Internetseite ein...

Bei vielen Dateien funktioniert es, nur bei manchen stimmt irgendetwas mit der Codierung nicht (Vermutung).

Beispiel:

Selbstüberschätzung statt Selbstüberschätzung...

Gruß,
Max

A
254 Beiträge seit 2007
vor 14 Jahren

Hi,

die XML Dateien, sollten eine Angabe zum verwendeten Encoding enthalten. Dann sollte es keine Probleme geben.

Tschüss

R
Riv3r Themenstarter:in
206 Beiträge seit 2007
vor 14 Jahren

Hi a957m,

natürlich steht (wie du gesagt hast) in der XML das Encoding dabei:


<?xml version="1.0" encoding="UTF-8"?>

leider steht in der gleichen XML auch "mysteriöse ".

Wenn ich die URL im Feuerfuchs aufmache stimmt übrigens alles.

Gruß,
Max

R
Riv3r Themenstarter:in
206 Beiträge seit 2007
vor 14 Jahren

Hallo,

gelöst habe ich das Ganze jetzt so:


            Encoding sourceEncoding = Encoding.UTF8;
            Encoding targetEncoding = Encoding.Default;
            using (WebClient wb = new WebClient())
            {
                string text = wb.DownloadString(url);
                
                byte[] sourceBytes = sourceEncoding.GetBytes(text);
                byte[] targetBytes = Encoding.Convert(sourceEncoding, targetEncoding, sourceBytes);
                System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
                return enc.GetString(targetBytes);
            }


Gruß,
Max

T
433 Beiträge seit 2006
vor 14 Jahren

Schau mal in die MSDN was WebClient.DownloadString macht.
Dein Encoding kannst du einfacher machen.

Gruß,
Tom