2015-09-25 3 views
0

У меня проблема с gSOAP C++. Я хочу прочитать некоторые записи из базы данных postgres. Для этого я установил client_encoding в UTF-8.gSOAP C++ - UTF8 Кодирование данных

В sent.log из gSOAP У меня есть эти символы:

überstr. или öde (сначала должен быть «ü», а второй - «ö»).

Если я установил client_encoding во время выбора базы данных в «LATIN1», запрос будет правильным.

Что нужно сделать, чтобы правильно отправить данные UTF-8?

ответ

0

Используйте флаг SOAP_C_UTFSTRING для инициализации контекста и для создания прокси-объекта. С помощью этого флага вы можете хранить UTF-8 в обычных строках на октете (то есть char* и std::string).

Или, возможно, используйте широкие члены строки в своих классах (например, запустите wsdl2h с typemap.dat, который отображает строки XSD в широкие строки).