C # Проблема с чтением XML с символами различных кодировок в нем

Я столкнулся с проблемой чтения XML. Решение найдено, но есть еще вопросы. Неверный файл XML зашифрован в UTF-8 и имеет соответствующую отметку в заголовке. Но он также включает символ, закодированный в UTF-16 - 'é', Этот код был использован для чтения XML-файла для проверки его содержимого:

var xDoc = XDocument.Load(taxFile);

Возникает исключение для указанного неверного XML-файла: "Неверный символ в заданной кодировке. Строка 59, позиция 104. " Быстрое решение заключается в следующем:

XDocument xDoc = null;
using (var oReader = new StreamReader(taxFile, Encoding.UTF8))
{
    xDoc = XDocument.Load(oReader);
}

Этот код неВозврат исключения для неверного файла. Но «Э» символ загружается как , Мой первый вопрос "почему это работает?

Еще один момент использования XmlReader нене поднимать исключение, пока узел с 'é' загружен.

XmlReader xmlTax = XmlReader.Create(filePath);

И снова помогает тренировка с StreamReader. Тот же вопрос. Кажется, что решение для исправления не достаточно хорошо, потому что однажды :) XML, закодированный в другом формате, может появиться, и это может быть неправильно. НО Я'Я пытался обработать XML-файл в формате UTF-16, и он работал нормально (настроен на UTF-8).

Последний вопрос: есть ли какие-либо опции, которые должны быть предоставлены для XDocument / XmlReader, чтобы игнорировать кодировку символов или что-то в этом роде?

Ждем ваших ответов. заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос