[Решено] Кодировка при writeXMLFile

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
donpadlo
новенький
Сообщения: 58
Зарегистрирован: 18.08.2011 09:14:53

[Решено] Кодировка при writeXMLFile

Сообщение donpadlo »

writeXMLFile(xDoc,form1.SaveDialog1.FileName);

Собственно под Linux файл формируется в UTF8 и все замечательно.
Под виндой соответственно в cp1251 и наступает ой. Можно както принудительно задать кодировку файла? Очень не хочется конвертить "на лету" все что в xDoc в виндовозную кодировку..Еще и определять под какой ОС запущено приложение жутко не хочется..
Последний раз редактировалось donpadlo 30.11.2011 13:58:22, всего редактировалось 2 раза.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Если я вас правильно понял.

Код: Выделить всё

writeXMLFile(xDoc,UTF8ToSys(form1.SaveDialog1.FileName));
Аватара пользователя
donpadlo
новенький
Сообщения: 58
Зарегистрирован: 18.08.2011 09:14:53

Сообщение donpadlo »

?? он же только имя файла переконвертит. А мне содержимое нужно.

Добавлено спустя 13 минут 31 секунду:
Эх..жалко изящного решения не получилось. Пришлось каждый нод обертывать в utf8tosys. Но вроде кросплатформенно.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

donpadlo
donpadlo писал(а):Эх..жалко...

Убей в себе windows и стань свободным от таких неудобств, как кодировка. :D
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Ничего не понял. fcl-xml (или речь не о нем?) пишет исключительно в utf8. cp1251 там в принципе нет, даже если захотеть. Другое дело, у DOM все текстовые свойства имеют тип WideString, и для взаимодействия с LCL нужно оборачивать в ut8encode/utf8decode.
Аватара пользователя
donpadlo
новенький
Сообщения: 58
Зарегистрирован: 18.08.2011 09:14:53

Сообщение donpadlo »

Так и пришлося делать
Ответить