【发布时间】:2015-09-25 09:56:33
【问题描述】:
我对 gSOAP C++ 有疑问。 我想从 postgres 数据库中读取一些记录。为此,我将 client_encoding 设置为 UTF-8。
在 gSOAP 的 sent.log 中,我有这些字符:
überstr.或öde(第一个应该是“ü”,第二个应该是“ö”)。
如果我在数据库选择过程中将client_encoding设置为“LATIN1”,则请求正确。
如何正确发送 UTF-8 数据?
【问题讨论】:
我对 gSOAP C++ 有疑问。 我想从 postgres 数据库中读取一些记录。为此,我将 client_encoding 设置为 UTF-8。
在 gSOAP 的 sent.log 中,我有这些字符:
überstr.或öde(第一个应该是“ü”,第二个应该是“ö”)。
如果我在数据库选择过程中将client_encoding设置为“LATIN1”,则请求正确。
如何正确发送 UTF-8 数据?
【问题讨论】:
使用SOAP_C_UTFSTRING 标志来初始化上下文并构造一个代理对象。使用此标志,您可以将 UTF-8 存储在基于八位字节的常规字符串中(即 char* 和 std::string)。
或者也许在你的类中使用宽字符串成员(例如,使用 typemap.dat 运行 wsdl2h,将 XSD 字符串映射到宽字符串)。
【讨论】: