Hallo!
Ich habe das Problem das Sonderzeichen nicht korrekt angezeigt werden. Ich lese eine Xml-Datei ein mittels XmlWriter und schreibe eine neue Xml-Datei. Das Encoding beim schreiben ist Encoding.Default, also UTF-8. Beim einlesen der Xml-Datei (ausgangsencoding: iso-8859-15) wird das Encoding mit meiner Methode nicht korrekt geändert.
Hier die Methode die das Encoding beim einlesen von iso-8859-15 in UTF-16 ändern soll.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| private static void EncodeText(ref string xml) { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); if (doc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) { XmlDeclaration xmlDeclaration = (XmlDeclaration)doc.FirstChild; xmlDeclaration.Encoding = "UTF-16"; } xml = doc.OuterXml; } |
Wenn ich im Einzelschritt durch die Methode springe wird die Declaration geändert und es steht danach encoding = UTF-16 da. Nur ändert das leider nicht das Problem mit den Sonderzeichen. Hängt das damit zusammen das ich nur quasi nen string ersetze und garnicht neu codiert wird?
Verstehe das nicht ganz, bitte um Hilfe!
Danke vielmals im Vorraus.
--Entschuldigung vielmals, das gehört natürlich in die Kategorie IO, XML und Registry, bite verschieben--
Moderiert von
Kha: Topic aus WinForms verschoben am Mi 29.07.2009 um 10:23