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,则在接收到中文字符串后,能够正常显示中文,不再乱码。
原因为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,则在接收到中文字符串后,能够正常显示中文,不再乱码。
相关文章推荐
- 解决android 显示中文字符串乱码的问题
- PHP字符串截取函数(解决中文乱码问题!支持UTF-8和GB2312)
- php中文字符串截取乱码问题解决
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- php ajax 中文乱码问题解决办法(接收发送)
- 解决gsoap中文乱码的问题
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- php截取中文字符串解决乱码问题
- 解决Jquery Ajax提交 服务器端接收中文乱码问题
- 解决QT中文字符串在osg中显示乱码的问题
- 使用gSOAP开发实例(4) iconv解决中文乱码问题(续)
- php ajax 中文乱码问题解决办法(接收发送)utf-8 GBK GB2312
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- strust2接收URL参数为中文是乱码问题的解决
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
- 使用gSOAP开发实例(4) iconv解决中文乱码问题(续)
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题