微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gSoap下的中文支持

最近有一个Webservice的对接项目,其中用到了gSoap工具在C/C++下进行对接开发。中间遇到一个中文编码的问题。

项目环境是在Linux下的,但是由于网络的问题只能在windows下写了一个demo测试程序。在对接过程中一直有一个发送中文编码的问题。查了不少资料,读了一下gSoap的源码,原来是中文编码的问题。

注意:

gsoap中文支持。2种方式解决
注;方法a不适用于非中文操作系统,linux,unix,aix请用方法b
a. setlocale(LC_ALL, "");
soap_set_mode((soaP*)&client,SOAP_C_MBSTRING);
设定本地字符集(既中文编码)及MultiByteString(GB双字节编码),中文字符串不需要另行转换

所以Windows下的VC6.0中的demo程序中需要设置SOAP_C_MBSTRING属性

b. 使用UTF8编码传输
soap_set_mode((soaP*)&client,SOAP_C_UTFSTRING);
client.mode|=SOAP_C_UTFSTRING; //解析接受时可能需要设定,发送无需设定
中文字符串转码(UTF8)发送。

 

 

所以中文编码在多环境、多操作系统支持切换中,是一个特别需要留心的地方。

@H_404_129@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐