Кодировка в xml используя StringWriter - C#

Узнай цену своей работы

Формулировка задачи:

Есть вот такой вот пример...
        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();
        }
При использовании MemoryStream получаем
<?xml version="1.0" encoding="utf-8"?>
<Colors>
    <Color>RED</Color>
</Colors>
при использовании StringWriter
<?xml version="1.0" encoding="utf-16"?>
<Colors>
    <Color>RED</Color>
</Colors>
И что самое интересное: в Settings какого-то дьявола вообще стоит юникод.

Решение задачи: «Кодировка в xml используя StringWriter»

textual
Листинг программы
private static volatile UnicodeEncoding m_encoding;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы