Wie kann ich XDocument zwingen, "UTF-8" in der Deklarationszeile auszugeben?

8

Der folgende Code erzeugt diese Ausgabe:

%Vor%

Wie kann ich encoding="utf-8" anstelle von encoding="utf-16" erzeugen?

%Vor%     
Edward Tanguay 20.07.2010, 08:44
quelle

2 Antworten

15

Erlauben Sie mir, meine eigene Frage zu beantworten, das scheint zu funktionieren:

%Vor%     
Edward Tanguay 20.07.2010 08:54
quelle
11

Dies ist kein Fehler in .NET. Dies liegt daran, dass Sie StringWriter als Ziel für Ihr XDocument verwenden. Da StringWriter intern UTF-16 verwendet, muss das Dokument auch UTF-16 als Codierung verwenden. Wenn Sie das XDoc in einem Stream oder einer Datei speichern, wird UTF-8 wie angewiesen verwendet.

Weitere Informationen finden Sie unter MSDN-Informationen über StringWriter.Encoding :

  

Diese Eigenschaft ist für einige XML-Szenarien erforderlich, in denen ein Header geschrieben werden muss, der die vom StringWriter verwendete Codierung enthält. Dadurch kann der XML-Code einen beliebigen StringWriter konsumieren und den korrekten XML-Header generieren.

    
Sami Kuhmonen 06.06.2014 05:47
quelle

Tags und Links