Подскажите пожалуйста по кодировке.
Ко мне приходят xml'ки, которые я "загружаю" в класс XmlDocument:
XmlDocument xml = new XmlDocument();
xml.Load(fileName);
Иногда они приходят в Win-1251, а иногда в UTF-8.
Как можно прочитав xml ( xml.Load() ), узнать какая кодировка указана в заголовке ( <?xml version="1.0" encoding="UTF-8"?> ) ?
Здравствуйте, Alex.proger, Вы писали:
AP>Иногда они приходят в Win-1251, а иногда в UTF-8.
AP>Как можно прочитав xml ( xml.Load() ), узнать какая кодировка указана в заголовке ( <?xml version="1.0" encoding="UTF-8"?> ) ?
Если цель не просто узнать кодировку, а прочитать файл, не зная ее заранее, то предлагаю такой вариант. Сперва затянуть содержимое xml в строку:
string str = File.ReadAllText(path, Encoding.Get(1251));
А потом уже из строки получать XmlDocument.
Хитрость вот в чем: если файл придет в UTF-8, то метод ReadAllText, несмотря на явно указанную кодировку 1251, все равно определит UTF-8 и прочитает файл правильно.