解决方法一:

在main函数里初始化soap结构体后加入
    soap_set_mode(&soap,SOAP_C_UTFSTRING);


这样所有的C都是utf-8的格式,只要你的windows客户端支持UTF-8格式就没有了乱码问题


解决方法二:iconv库转码

一般在ubuntu中都会预装iconv的库,使用也很简单,网上的教程很多..
下面的函数,在需要转码的地方调用即可
#include <iconv.h>
#ifdef ICONV_EN
/*
用户中文乱码问题,格式转换用!
ARG:
dest:目的格式
src:原格式
input:输入字符串
...*/ int conv_charset(const char *dest, const char *src, char *input, size_t ilen, char *output, size_t olen) {
char **inbuf = &input;
char **outbuf = &output;
if(dest == NULL || src == NULL)
return -1;
iconv_t conv = iconv_open(dest, src);
if ( conv == (iconv_t) -1 )
return -1;
memset(output, 0, olen);
printf("dest=%s,src=%s,input=%s,output=%s,olen=%d\n",dest,src,*inbuf,*outbuf,olen);
if ( iconv(conv, inbuf, &ilen, outbuf, &olen) )
return -1;
printf("output=%s\n",output); //此处打印output为空,正常
iconv_close(conv);
return 0;
}
#endif

函数的使用,一般windows支持GBK和GB2312格式,现在的windows强制支持GB18030,转为这个格式很好的!
函数都是亲测可用的,给大家分享,一块进步...

int send_msg_xml(struct soap *soap,char *msg)
{
struct Namespace *nsmap;
nsmap = NULL;
soap->encodingStyle = NULL;
soap_set_omode(soap,SOAP_XML_TREE);
soap->http_content = "text/xml";
soap_set_namespaces(soap,nsmap);
soap_begin_send(soap);
#ifdef ICONV_EN
char *buff/*[OUTPUT_LEN]={0}*/;
//转码
buff = (char *)malloc(OUTPUT_LEN);
if(conv_charset("GBK","UTF-8",msg,(int)strlen(msg),buff,(int)OUTPUT_LEN) != 0)
{
#endif
soap_serialize_string(soap, &msg);
soap_put_string(soap, &msg, "RET_MSG", NULL);
#ifdef ICONV_EN
}else{
soap_serialize_string(soap, &buff);
soap_put_string(soap, &buff, "RET_MSG", NULL);
}
#endif
soap_end_send(soap); // Clean up temporary data used by the serializer
return SOAP_OK; }

解决gsoap中文乱码的问题的更多相关文章

  1. 解决Eclipse中文乱码 - 技术博客 - 51CTO技术博客 http://hsj69106.blog.51cto.com/1017401/595598/

    解决Eclipse中文乱码 - 技术博客 - 51CTO技术博客  http://hsj69106.blog.51cto.com/1017401/595598/

  2. Ubuntu14.04安装中文输入法以及解决Gedit中文乱码问题

    1 设置中文显示环境 1. 打开System Settings 2. 打开Personal-> Language Support. 会弹出如下对话框,提示你“语言支持没安装完整”. 点击“Rem ...

  3. Ubuntu14.04安装中文输入法以及解决Gedit中文乱码问题[转载]

    转载自:http://www.cnblogs.com/zhcncn/p/4032321.html 写在前面:解决gedit 在txt文件格式出现乱码的问题,在我自己的操作中是需要把系统设置成中文显示环 ...

  4. 解决TortoiseCVS中文乱码

    解决TortoiseCVS中文乱码必备,解决方法: 第一:卸载和TortoiseCVS安装一起安装的CVSNT. 第二:安装本版本CVSNT. CVSNT下载地址:http://down.51cto. ...

  5. 如何解决PHP中文乱码问题

    如何解决PHP中文乱码问题 一.解决HTML中中文乱码问题方法    1.在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的. ...

  6. springMvc解决json中文乱码

    springMvc解决json中文乱码 springMvc解决json中文乱码,springMvc中文乱码,spring中文乱码 >>>>>>>>> ...

  7. 解决URL中文乱码问题--对中文进行加密、解密处理

    解决URL中文乱码问题--对中文进行加密.解密处理 情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip.处理过程如下:点击选择账号,在js中获取工作目标 ...

  8. request.getParameter()及解决数据库中文乱码问题——实习第七天

    今天老师让我们自己做一个小项目,我开始着手于实现这个小项目.途中遇到过几个小问题,在此做个小记录, 相信后期还是会借鉴的. 1,从前台传入数据给后台传入数据,并没有传入成功: 输出的为Null. 当然 ...

  9. Hession集成Spring + maven依赖通讯comm项目 + 解决@ResponseBody中文乱码

    hessian结合spring的demo         hessian的maven依赖: <!-- hessian --> <dependency>         < ...

随机推荐

  1. Spring之使用Annotation注解开发项目

    我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率.spring中要使用annotation,需要在配置文件中增加: <beans xmlns="http: ...

  2. ATMEGA16 IOport相关汇总

    ATMEGA16 IOport总的共同所有权有关的寄存器有三个DDRX.PORTX和PINX. 假设你想IO动作基本上与这三个寄存器操纵.DDRX也被称为数据方向寄存器.PORTX所谓数据寄存器.PI ...

  3. jmeter参数化之CSV Data Set Config

    在jmeter中,可以用CSV Data Set Config实现参数化. 1.准备参数化数据

  4. 日志之再说Log4J

    网上关于LOG4J的使用文章太多了,写这篇文章的目的一方面是为了回顾LOG4J的用法,一方面针对配置的使用自动将日志插入数据库,自动发送邮件,还有就是自定义输入实现.后续文章会总结下从LOG4J到LO ...

  5. C语言移位运算

    移位运算有两种:>>(右移),<<(左移). a>>b表示将a的二进制值右移b位. a<<b 表示将a的二进制值左移 b位.要求 a和 b都是整型, b ...

  6. 用jQuery的ajax的功能实现输入自动提示的功能

    注意事项:要使用jQuery首先要把它的包引用进来( <script type="text/javascript" language="javascript&quo ...

  7. Memcache存储大量数据的问题

    Memcache存储大数据的问题  huangguisu Memcached存储单个item最大数据是在1MB内,假设数据超过1M,存取set和get是都是返回false,并且引起性能的问题. 我们之 ...

  8. Oracle索引——位图索引

    1.语法create bitmap index index_name on 表名(字段);2.举个例子你就能明白了:如有表 test(id,name,address)数据(1,张三,大连)(2,李四, ...

  9. 如何给非AppCompatActivity添加Toolbar?--关于5.0新特性兼容5.0以下设备的探索

    Android支持包22.1引进了AppCompatDelegate 最新22.1版本的支持包引入了大量酷炫的新特性,这些特性将允许我们轻易地将材料设计/API 21+的特性应用到之前的那些老的,不兼 ...

  10. oracle存储过程代码覆盖率统计工具

    目前针对于高级语言如C++,JAVA,C#等工程都有相关的代码覆盖率统计工具,但是对于oracle存储过程或者数据库sql等方面的项目,代码覆盖率统计和扫描工具相对较少. 因此针对这种情况,设计了代码 ...