您的位置:首页 > 其它

gsoap解决接收字符串有中文时乱码问题

2017-03-29 17:11 811 查看
gsoap客户端有中文发送给服务器,服务器能正常解析,但是服务器中返回的字符串中有中文,客户端显示为乱码,即使代码中初始化soap时用了语句:soap_set_mode(&clientSoap, SOAP_C_MBSTRING);   也一样乱码。

原因为gsoap生成头文件时使用的字符串为std::string, 改为std::wstring或者wchar_t* 则能正常显示中文。修改方法如下:

1.在生成webservice头文件时,先新建文件mytypemap.dat,内容为:

xsd__string = | std::wstring | wchar_t*

2.然后用命令生成头文件时,使用如下命令:

> wsdl2h -o UploadInfoWebService.h  -t  mytypemap.dat  http://10.252.252.244:8080/grgbackmanager/ws/aio?wsdl

即加上-t mytypemap.data 这个,则在gsoap生成的.h文件中可以看到,std::string已经改为wchar_t*类型了,

后面继续用命令生成相应的文件: soapcpp2  UploadInfoWebService.h

然后调用相应的接口时,改为使用wchar_t* 或者std::wstring,则在接收到中文字符串后,能够正常显示中文,不再乱码。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: