gsoap 编码问题。_gogiqp_jyh的博客-程序员宝宝

技术标签: c++  

网上很多关于gsoap中文编码的问题,
网上流行的方案是在讲数据送入gsoap 之前将数据转换为utf8编码,很多人之所以这么做是因为设置了如下编码方式
 soap_init(&soap);
 soap_set_mode(&soap,SOAP_C_UTFSTRING);
1
2
 soap_init(&soap);
 soap_set_mode(&soap,SOAP_C_UTFSTRING);
故gsoap要求接收的数据是utf8编码的。
gsoap 的 核心内部是入和出都是UTF8编码的,由于中文是多字节的,所以将多字节的按照UTF8转换,最终结果就是乱码。
正确的方式如下:
C/C++ code soap_init(&soap);
 soap_set_mode(&soap,SOAP_C_MBSTRING);
1
2
 soap_init(&soap);
 soap_set_mode(&soap,SOAP_C_MBSTRING);

既可以处理中文,gsoap 根据SOAP_C_MBSTRING内部实现到UTF8的转换,而不需要用户额外转换。

 

 

这中方法不太适合我,因为我读取(gb2312-utf-8)设置(utf-8-gb2312)。

所以,我是在用到中文的时候手动装换的。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010800064/article/details/17359529

智能推荐

Oracle APEX 系列文章9:为什么选择使用 Oracle APEX_教IT的无语强的博客-程序员宝宝

的设计从一开始就是帮助 Oracle 开发人员构建现代、美观、反应迅速的应用程序,而无需成为专业领域的专家。以下是简述 Oracle APEX 对您的下一个 Web 开发项目有意义的几个原因。

数据库、数据源、数据库连接、数据库连接池的关系_数据库和数据源的关系_DavidQian谛听的博客-程序员宝宝

数据库、数据源、数据库连接、数据库连接池的关系数据库数据库就是包含了很多数据的容器,当然这些数据可能存在不同的小容器(表)里面,总之,如果用水来形容数据,那么数据可就是水库。数据源数据源是连接到数据库的一类路径,它包含了访问数据库的信息(地址、用户名、密码)。数据源就像是排水管道。数据库连接数据库连接是根据数据源产生的实际连接上数据库的路径,数据库连接就像是管道里面的水管,这些水管都按...

redis-3.2.10安装_取壳羊的博客-程序员宝宝

wget http://download.redis.io/releases/redis-3.2.10.tar.gzredis_dir=`echo $1 |cut -d . -f 1-3`cd ${redis_dir}make PREFIX=/usr/local/redis3210 install#创建数据目录mkdir /usr/local/redis3210/datacat &g...

PowerBuilder技巧和窍门_ttyyyiya的博客-程序员宝宝

我在Techwave 2006上的演示主要面向初学者和有一定经验的PowerBuilder开发人员。作为一名有着12年经验的PowerBuilder开发人员,我希望能够和大家一起来分享使用这些有用的技巧和窍门。我从1994年的开始使用PowerBuilder 3.0,那时还没有PFC,实际上"class library(类库)"的概念那时还是一个新名词。 我们不得不使用Po

自定义button-iOS设置button图片文字上下居中垂直对齐_safari el-button 文字上下居中_人鱼呢喃的博客-程序员宝宝

第一种:@interface BaseButton : UIButton-(UIButton*)initWithFrame:(CGRect)frame Title:(NSString *)text NormalImage:(UIImage*)normalImage SelectedImage:(UIImage *)selectedImage;@end-(

评选最牛群主v1.0(哈工大Mooc)_Love 6的博客-程序员宝宝

Mooc课后习题集 及 做到的一些有趣的题这是我初学c开始有意识的记录自己做的每一道题开始写下的代码水平 一个一个代码发出来 直到我现在学的数据结构 那个时候还不会注释 格式什么的也是按照自己怎么喜欢怎么来 如果真不会看会代码理解一下 qwq 如代码有错请见谅 毕竟都好久以前敲得了hhh ~~如果对各位的思路引导有帮助那更好#include <stdio.h>#include <string.h>int main(){ int n,i,j,max=0,winne

随便推点

wnTKYg长期占用CPU资源(linux)_希文特的博客-程序员宝宝

第一步:堵住木马入侵的源头由于一开始使用redis并没有设置密码,导致wnTKYg被植入。修补该漏洞的方法(在redis.conf中设置):①.修改默认端口# Accept connections on the specified port, default is 6379 (IANA #815344).# If port 0 is specified Redis will not listen...

去掉input和button标签的原始边框_'马赛克'的博客-程序员宝宝

button标签设置圆角后,每一次点击都会出现原始的边框input标签设置圆角后,每一次点击输入内容都会出现原始的边框解决方法:设置css样式:outline:none;通常很多人都会设置为:border:none;border:none只是隐藏边框,却对浅蓝色的边框无效...

IDEA报错Error running ‘Application‘ Command line is too long解决方案_普通网友的博客-程序员宝宝

作为程序员第37篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha…2点击Environment,选择Shortencommandline下拉框,4点击Modifyoptions,选择Shortencommandline。1由于方案一是当前项目设置,其他项目打开又没有了,所以可以设置全局,3main函数也会出现相同的问题,点开Edit编辑。2点击springboot项目,其他跟方案一相同。5更改为classpathfile。...

WH_MOUSE 与WM_MOUSE_LL的区别_tbwork的博客-程序员宝宝

<br />坏境:windows XP<br />在使用SetWindowsHook截获鼠标事件时,如果使用WH_MOUSE参数,则只能监控钩子所在模块的鼠标事件。<br />如需要截获整个系统的鼠标事件,那么使用WH_MOUSE_LL参数。<br /> <br />//install hmouse=SetWindowsHookEx(WH_MOUSE_LL,(HOOKPROC)mouseproc,GetModuleHandle("KeyMonitor.dll"),0);//挂上鼠标钩子//

【JS】时间走动特效用封装函数在小于10的数的前面加0_AlbertHongXS的博客-程序员宝宝

时间走动特效//时间走动function TimeRun(){var now=new Date();var year=now.getFullYear();var month=now.getMonth()+1;//月份少1var date=now.getDate();var week = "星期" + "日一二三四五六".split(/(?!\b)

推荐文章

热门文章

相关标签