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)发送。

 

 

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

 

你可能感兴趣的:(webservice)