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

 

 

所以中文編碼在多環境、多操作系統支持切換中,是一個特別需要留心的地方。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章