日期:2014-05-16  浏览次数:20598 次

使用UTF8编码通过gsoap访问.Net Web Service依然不能正确显示中文
OS:AIX5.3
Locale:en_us iso8859-1
Compiler:VisualAge for c/c++ 6.0
gsoap:gsoap 2.7 手工编译
Web Services是用VS.NET2005 C#开发的
现象:
1不使用soap_set_mode(soap, SOAP_C_UTFSTRING)函数,windows端接受字符即为乱码,这是必然的结果
2使用soap_set_mode(soap, SOAP_C_UTFSTRING)函数,windows端接受字符为■■■■■■
3.Net开发人员先在接受时做了UTF8-GB2312转码处理,依然不行,之后恢复到没有修改之前的状态日志中居然没有输出了。
这个问题困扰我几天了,按理说使用了使用soap_set_mode(soap, SOAP_C_UTFSTRING)函数,对方就应改能正确接受并显示中文啊!请大家帮忙分析分析可能出错的原因,谢谢!

------解决方案--------------------
Locale:en_us iso8859-1 

修改成zh_CN.utf8 或者 zh_CN.gb2312试试看,建议把系统语言和编程环境的语言同步..