Перейти к содержанию
Fire Monkey от А до Я

magma

Пользователи
  • Постов

    1
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные magma

  1. Добрый день.

    Из внешней системы приходит XML файл с кириллицей, но без хедера: <?xml version="1.0" encoding="windows-1251"?>

    Чтобы дальше всё корректно работало, добавляю хедер в коде самостоятельно:

    _di_IXMLDocument XMLDocument = NewXMLDocument();
    TStringList *StringList = new TStringList(); 
    StringList->LoadFromFile(FileName); // Загружаем сначала файл в StringList
    String XMLPrefix = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>";
    StringList->Insert(0, XMLPrefix); // Добвляем в StringList первой (нулевой) строкой хедер
    //XMLDocument->LoadFromXML(StringList->Text); // - если делать так, то НЕ РАБОТАЕТ (в XML вставляет левую кодировку) !!!
    StringList->SaveToFile(FileName);
    XMLDocument->LoadFromFile(FileName); // - так РАБОТАЕТ и всё читает правильно
    delete StringList;
    // ...

    Собственно вопрос - как сделать так, чтобы XMLDocument->LoadFromXML работала корректно и читала данные в нужной кодировке?

    Примечание: на русскоязычной версии Windows все вроде бы работает корректно, но на сервере, где установлена англоязычная Windows, - читает не в той кодировке. При этом из файла XMLDocument->LoadFromFile всегда всё читает корректно!

    P.S. Пробовал устанавливать XMLDocument->Encoding = "windows-1251"; - не помогло

     

×
×
  • Создать...