Ett problem med StringWriter
är att den som standard inte låter dig ställa in kodningen som den annonserar - så du kan sluta med ett XML-dokument som annonserar dess kodning som UTF-16, vilket betyder att du måste koda det som UTF-16 om du skriver det till en fil. Jag har dock en liten klass som kan hjälpa till med det:
public sealed class StringWriterWithEncoding : StringWriter
{
public override Encoding Encoding { get; }
public StringWriterWithEncoding (Encoding encoding)
{
Encoding = encoding;
}
}
Eller om du bara behöver UTF-8 (vilket är allt jag ofta behöver):
public sealed class Utf8StringWriter : StringWriter
{
public override Encoding Encoding => Encoding.UTF8;
}
Angående varför du inte kunde spara din XML i databasen - du måste ge oss mer information om vad som hände när du försökte, om du vill att vi ska kunna diagnostisera/fixa det.