ich jede Arbeits Antwort irgendwie hier nicht finden können, ist so hier eine tatsächliche Lösung die gewünschte Codierung in der Kopfzeile, die folgende Ausgabe:
private void CreateXml()
{
XmlTextWriter xmlwriter = new XmlTextWriter("c:\\test.xml", Encoding.GetEncoding("iso-8859-1"));
XDocument xdoc = new XDocument(
new XElement("Test")
);
xdoc.Save(xmlwriter);
xmlwriter.Close();
}
Der Grund, warum Sie UTF bekommen -16 bedeutet, dass Zeichenfolgen mit UTF-16 im Speicher codiert sind. Solange Sie keine Codierung für die XML-Ausgabe angeben, wird die Codierung im XML-Header überschrieben, damit sie der tatsächlich verwendeten Codierung entspricht. Verwenden Sie eine XmlTextWriter
ist eine Methode zum Angeben einer anderen Codierung.
Sie können auch die XmlTextWriter
schreiben, um eine MemoryStream
und dann wieder in string
umwandeln, wenn Sie die gesamte Operation im Speicher durchführen müssen.
Bedeutet das, dass es keine Möglichkeit gibt, eine ungültige Codierung mit XDocument anzugeben? Ich reiche XML an Dritte weiter, die eine falsche Deklaration benötigen Xml version = "1.0" encoding = "ISO-8859-1"?>. –
Ich bin sicher, dass Sie können. Welches System entspricht der richtigen Verwendung, Sprache und Spezifikation? – yfeldblum