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, чтобы игнорировать кодировку символов или что-то в этом роде?
Ждем ваших ответов. заранее спасибо