Как записать текстовый файл в ISO-8859-1 ??? в избранное  новое горячее всё    подписка   модер.  /!\
От: busybox 
Дата: 21.01.07 18:52
Нужно записать XML файлик именно в кодировке ISO-8859-1, т.к. мобильный девайс понимает только такую.

Как/чем можно сконвертить XML файлик с кириллицей в ISO-8859-1 ???

Спасибо
Re: Как записать текстовый файл в ISO-8859-1 ??? в избранное  новое    модер.  /!\
От: NoOneKnows 
Дата: 21.01.07 20:04
Здравствуйте, 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>Спасибо


Удачи .
С уважением, Рамиль Сам Ду Нар.
Почти самый отрицательный
Автор: NoOneKnows
Дата: 08.06.06
РСДНовец.