c++ 使用 gsoap 调用  WebService 中文乱码
 
问题产生:

使用gsoap时,如果WebService服务端及客户调用端都使用 C++ , 再传递中文时不会存在乱码问题,

当客户端为 C++ ,WebService服务端使用Java、domino,传递中文则会有乱码问题。

产生原因:

宽字符的原因

解决办法(一):

在程序中首先设置本地代码页

vista 操作系统:

setlocal(LC_ALL,"Chinese");

soap_set_mode(soap,SOAP_C_MBSTRING);

windowsxp 操作系统:

setlocal(LC_ALL,"chs");

soap_set_mode(soap,SOAP_C_MBSTRING);

解决方法(二)

1. 使用 wsdl2h.exe 通过wsdl描述文件创建C++头文件(test.h);

2. 将头文件(test.h)中 std:string* 使用wchar_t* 替换;

3. 使用 soapcpp2.exe -i test.h ,生成相关的cpp及h文件

4. 使用 C++ 时,需要将接收的wchar_t类型数据转换为char, 使用WideCharToMultiByte函数

后续:

soap在对字符编码转换时,调用 wctomb 函数,该函数的调用在 stdcoap2.cpp 文件中,代码调试跟踪至此,查看 该函数的返回值是否正确,-1表示字符集设置不正确。

c++ 使用 gsoap 调用 WebService 中文乱码的更多相关文章

  1. php 调用 webservice 中文乱码解决方案

    webservice中有中文的话,返回的值就变成了乱码.查看了一下response的结果,是正确的.应该是用nusoap处理的时候出现了问题. 更改了nusoap.php两个地方就OK了. 更改的地方 ...

  2. Qt+gsoap调用WebService

    1.       前言 Qt本身给我们提供了调用WebService的解决方案qsoap,看了一下他的介绍,感觉实在是太弱了,而且又是个新出的东西,所以还是决定不用他.既然使用Qt,那当然是跨平台的解 ...

  3. notepad++调用python3中文乱码

    使用notepad++,配置好快捷键调用python3,一切就绪,仿佛就差代码了,结果一使用, 中文乱码,一直没有好的解决办法. 最后只能在代码中增加一行重写向输出解决,示例如下: #!/usr/bi ...

  4. 调用js中文乱码

    JS文件是GB2312编码的,如果需要js中的中文不出现乱码,在UTF-8编码中调用语句为: <script src="myjs001.js" charset="g ...

  5. C++客户端通过gSOAP调用WebService

    webService三要素: SOAP(Simple Object Access Protocol).WSDL(WebServicesDescriptionLanguage).UDDI(Univers ...

  6. QT里使用Gsoap调用WebService

    错误了很多天,今天终于搞定,并得到了服务器的结果.这里把错误的原因记录下来. 首先是这里,之前一直没有加载进来,所以一直报错 SOURCES += main.cpp\ gsoap/soapClient ...

  7. html页面调用servlet中文乱码问题

    1.需要在html中:<meta charset=utf-8" /> 2.在servlet的doPost方法中 首先:response.setContentType(" ...

  8. PHP调用Webservice实例

    原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发S ...

  9. VS2010使用c++、gSOAP创建WebService 图文教程

    VS2010使用c++.gSOAP创建的WebService 图文教程 环境 操作系统:Windows 7gsoap版本:2.8.32C++编译器/开发环境:Visual Studio 2010 gS ...

随机推荐

  1. arcgis python 判断是数据库或是文件夹

    import arcpy # Create a Describe object # desc = arcpy.Describe("C:/Data/chesapeake.gdb") ...

  2. synchronized对象解析

    package com.haiyisoft.hyoaPc; public class Test7 { public static void main(String[] args) throws Int ...

  3. smaller programs should improve performance RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构 区别示例

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In this section, we l ...

  4. 真正解决方案:phpMyAdmin #1089 - Incorrect prefix key; the storage engine doesn't support unique prefix key

    先直接给解决方案: 点击A_I后,不要输入大小,直接点击执行!!! 分析 当你在使用phpMyAdmin 创建数据库表的时候,一般我们需要设置一个主键,然后让其自增长,但是有时候当你设置完成后,你可能 ...

  5. [Ubuntu]18安装navicat 破解版&官方版本

    破解版本: 一.下载破解版的navicat  链接:https://pan.baidu.com/s/1ulptSderoG0EbEQpO3Adww提取码:8oc3 二.解压到桌面 在下载压缩文件之后, ...

  6. JVM学习笔记之认识JDK(一)

    1. HotSpot VM: HotSpot VM是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机. 什么是HotSpot VM & 深入理解Java虚拟机 ...

  7. Scala中的列表可以添加元素吗?

    列表或许是Scala程序中最常用到的数据结构了,其与数组非常相似,最重要的两点差别为: 1.列表是不可变的: 2.列表具有递归结构,而数组是连续的. 在实际使用中非常容易这样用: val a = Li ...

  8. 配置yum镜像源

    centos7配置本地yum源 先从官网下载centos7镜像 以centos7.4 为例 CentOS-7-x86_64-Everything-1804 [root@kangvcar ~]# mv ...

  9. 刚开始使用idea的朋友,可以看一下下面这篇文章

    刚开始使用idea的朋友,可以点击本链接看一下这篇文章 以及这些文章 http://www.jetbrains.com/help/idea/getting-help.html------ Gettin ...

  10. MySQL安装Write configuration file 提示:configuration file template my.ini Error code-1

    在安装MySQL的时候, 在最后安装时,最后一步出现Write configuration file没成功勾选,并提示:configuration file template D:\mysql\my- ...