Как изменить кодировку XML-файла? - C#

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

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

Добрый день! Подскажите, как изменить кодировку xml-файла Этот код работает правильно, но только если я в самом файле вручную изменю кодировку с utf-8 на windows-1251, однако нужно, чтобы код работал именно с utf-8 Help!
Листинг программы
  1. XmlTextReader xmlReader1 = new XmlTextReader(file1);
  2. xmlReader1.Encoding = "678";
  3. xmlReader1.WhitespaceHandling = WhitespaceHandling.None;
  4. XmlTextReader xmlReader2 = new XmlTextReader(file2);
  5. xmlReader2.WhitespaceHandling = WhitespaceHandling.None;
  6. int fullcount = 0;
  7. var differentList = new List<string>();
  8.  
  9. while (xmlReader1.Read() && xmlReader2.Read())
  10. {
  11. if (xmlReader1.NodeType == XmlNodeType.Element & xmlReader1.AttributeCount > 0)
  12. {
  13. fullcount++;
  14. if (xmlReader1.GetAttribute(0) != xmlReader2.GetAttribute(0))
  15. {
  16. differentList.Add(xmlReader1.Name);
  17. }
  18. }
  19. }
  20. Console.WriteLine("Проверено " + fullcount + " элементов.");
  21. Console.WriteLine("Список несовпадающих элементов:");
  22. foreach(string dif in differentList)
  23. {
  24. Console.WriteLine(dif);
  25. }
  26. Console.ReadLine();
пример xml-файла
Листинг программы
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ТестовыеДанные>
  3. <Фамилия value="Петров" />
  4. <Имя value="Иван" />
  5. <Отчество value="Иванович" />
  6. <Пол value="Женский" />
  7. <ДатаРождения value="01.01.1996" />
  8. <УдостоверениеЛичности>
  9. <Тип value="Паспорт РФ" />
  10. <Номер value="7748321242" />
  11. </УдостоверениеЛичности>
  12. <АдресРегистрации>
  13. <Регион value="Москва" />
  14. <Район value="Воскресенское" />
  15. </АдресРегистрации>
  16. <Образование value="Высшее профессиональное" />
  17. </ТестовыеДанные>
а вот и дельный совет для меня
Листинг программы
  1. FileStream stream1 = new FileStream(file1, FileMode.Open, FileAccess.Read);
  2. StreamReader reader1 = new StreamReader(stream1, Encoding.GetEncoding(1251));
  3. XmlTextReader xmlReader1 = new XmlTextReader(reader1);
  4. xmlReader1.WhitespaceHandling = WhitespaceHandling.None;
  5. FileStream stream2 = new FileStream(file2, FileMode.Open, FileAccess.Read);
  6. StreamReader reader2 = new StreamReader(stream2, Encoding.GetEncoding(1251));
  7. XmlTextReader xmlReader2 = new XmlTextReader(reader2);
  8. xmlReader2.WhitespaceHandling = WhitespaceHandling.None;

Решение задачи: «Как изменить кодировку XML-файла?»

textual
Листинг программы
  1. StreamReader reader1 = new StreamReader(stream1, true);

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы