Der folgende Code erzeugt diese Ausgabe:
%Vor% Wie kann ich encoding="utf-8"
anstelle von encoding="utf-16"
erzeugen?
Erlauben Sie mir, meine eigene Frage zu beantworten, das scheint zu funktionieren:
%Vor% 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.
Tags und Links c# xml utf-8 linq-to-xml