Кодировка в xml используя StringWriter - C#
Формулировка задачи:
Есть вот такой вот пример...
При использовании MemoryStream получаем
при использовании StringWriter
И что самое интересное: в Settings какого-то дьявола вообще стоит юникод.
static void Main(string[] args)
{
string result;
Encoding utf8noBOM = new UTF8Encoding(false);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = utf8noBOM;
//using (MemoryStream output = new MemoryStream())
using (var output = new StringWriter())
{
using (XmlWriter writer = XmlWriter.Create(output, settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("Colors");
writer.WriteElementString("Color", "RED");
writer.WriteEndDocument();
}
//result = Encoding.Default.GetString(output.ToArray());
result = output.ToString();
}
Console.WriteLine(result);
Console.ReadKey();
}<?xml version="1.0" encoding="utf-8"?>
<Colors>
<Color>RED</Color>
</Colors>
<?xml version="1.0" encoding="utf-16"?>
<Colors>
<Color>RED</Color>
</Colors>
Решение задачи: «Кодировка в xml используя StringWriter»
textual
Листинг программы
private static volatile UnicodeEncoding m_encoding;