Re: gSoap что за кодировка? Как получить строку в utf8?
От: Женя Россия  
Дата: 18.11.09 07:58
Оценка:
Нашел решение:
soap_init1(&soap, SOAP_C_UTFSTRING);

вместо
soap_init(&soap)ж


Строка сообщения теперь содержит полноценный utf8, но осталась другая проблема: при возникновении ошибки — прилетает строка в непонятной кодировке...
if (soap_call___ns1__GetMessages(&soap, NULL, NULL, &input, &output) == SOAP_OK) {
...
}
else {
        char buf[1024];
        soap_sprint_fault(&soap, buf, 1024); // display the SOAP fault message on the stderr stream
        const char** d = soap_faultdetail(&soap);
        if (d) {

            std::string err(*d);
            setMessage(UTF8_Win1251(err).c_str());
        }
}

FireFox показывает так:
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Application Error</faultstring>
<detail>
<error>
<text>
ОШИБКА #0: Неизвестный код статуса: <UserErrors>0 (неверный логин или пароль)
</text>
</error>
</detail>
</SOAP-ENV:Fault>

а строка err содержит <error><text>ERROR #0: Unknown status code: &lt;UserErrors&gt;0 (неверный логин или пароль)</text></error>

Помогите, кто сталкивался с такой проблемой...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.