gsoap中文乱码问题
来源:互联网 发布:acr软件下载 编辑:程序博客网 时间:2024/04/24 18:02
最近项目中采用了gsoap调用WebService接口,想着测试输出看下接口返回的数据是否正确,却遇到了些问题。
一开始gsoap中调用接口返回的数据是char**类型,于是就写了如下代码输出查看:
int soapResult = proxy.getUserSystem(&reqGetUs, &rspGetUs);
if (soapResult==SOAP_OK)
{
cout<<"调用成功!"<<endl;
char **chResult= rspGetUs.return_;
for (int i=0;i<rspGetUs.__sizereturn_;i++)
{
cout<<chResult[i]<<endl;
}
}
结果是:如果是数字或字符串则输出正确,如果含有中文则输出的是乱码
于是查找原因与解决方案,原因是我的项目采用的是UNICODE字符集,而从接口传输过来的数据采用的是多字节字符集,从而编码不匹配导致输出乱码。找到的一种解决方案是修改typemap.dat文件(生成gsoap调用代码时-t指定的文件),该文件是用于指定soap/xml中的数据类型与C/C++中的数据类型间的转换规则的,修改方法为打开该文件,在最后一行加上如下这条语句:
xsd__string = | wchar_t* | std::wstring
这样soap/xml中的string类型将被转换为wchar_t*或std::wstring类型,从而更好的支持中文。另外为了确保Proxy类用UTF8编解码,可在其构造函数中强行赋值编码方式,如:ConsoleWinServiceImplServiceSoapBindingProxy proxy(SOAP_C_UTFSTRING)。
打发发的
- gsoap中文乱码问题
- gsoap 中文乱码问题
- 解决gsoap中文乱码的问题
- gsoap中文乱码问题的解决办法
- gSoap中文乱码解决
- gsoap 中文乱码处理
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- gSoap关于string包含中文客户端显示乱码问题
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- gsoap向java webserverce传输中文乱码问题
- 使用gSOAP开发实例(3) iconv解决中文乱码问题 .
- gsoap中文乱码及内存清理等问题的…
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- ONVIF编程-GSOAP中文乱码的问题总结
- gsoap中文乱码及内存清理等问题的解决方案
- gsoap中文乱码及内存清理等问题的解决方案
- gsoap中文编码问题!
- C语言-程序中执行cmd命令并获取结果
- 数据结构--顺序表
- InstallShield安装与制作
- CFileFind遍历目录查找文件
- session_start():Warning Cannot send session cookie - headers already sent... 解决方法
- gsoap中文乱码问题
- MFC COMBOX使用
- NS3安装过程
- setsockopt函数的用法
- 详解CSS选择器、优先级与匹配原理
- timus 1005 stone pile
- 【android基础】android preferences
- YCbCr 转 RGB 保存成JPEG文件
- 最好的shell入门教程