Нужно записать XML файлик именно в кодировке ISO-8859-1, т.к. мобильный девайс понимает только такую.
Как/чем можно сконвертить XML файлик с кириллицей в ISO-8859-1 ???
Спасибо
Здравствуйте, busybox, Вы писали:
B>Нужно записать XML файлик именно в кодировке ISO-8859-1, т.к. мобильный девайс понимает только такую.
Ансвер:
// Создаете новые настройки писателя :)
XmlWriterSettings xmlSettings = new XmlWriterSettings();
xmlSettings.Encoding = Encoding.GetEncoding("iso-8859-1");
// Пишите в любимой кодировке:
XmlWriter writer = XmlWriter.Create(outFileName, xmlSettings);
doc.Save(writer); // doc - это объект типа XmlDocument
B>Как/чем можно сконвертить XML файлик с кириллицей в ISO-8859-1 ???
Без потерь — ничем. Может, вы перепутали, и не ISO-8859-1 (Latin-1) имелась в виду, а ISO-8859-5 (Cyrillic)?
Если предпосылка "XML файлик с криллицей в UTF-8" верна, то решение простое:
XmlReaderSettings settings = new XmlReaderSettings();
XmlReaderSettings xmlReadSettings = new XmlReaderSettings();
// По умолчанию у xmlReadSettings кодировка UTF-8,
// Так что все ОК:
XmlReader reader = XmlReader.Create(filename, xmlReadSettings);
// Читаем:
XmlDocument doc = new XmlDocument();
doc.Load(reader);
// Пишем в "правильной" кодировке:
XmlWriterSettings xmlWriteSettings = new XmlWriterSettings();
xmlWriteSettings.Encoding = Encoding.GetEncoding("iso-8859-5");
XmlWriter writer = XmlWriter.Create(outFileName, xmlWriteSettings);
doc.Save(writer);
Вариант, когда исохдный XML не в UTF-8 решается (должен) банальной установкой у xmlReadSettings.Encoding в требуемую кодировку.
B>Спасибо
Удачи
.