Добрый день.
Из внешней системы приходит 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"; - не помогло