ONVIF编程-GSOAP中文乱码的问题总结

onvif编程使用到gsoap工具生成代码框架,之后在该框架下进行编码。使用gsoap工具生成的步骤不难,网上教程也很多。下篇将对生成框架代码中遇到的问题进行总结。

1、问题现象

在获取、设置预置位名称时,名称为中文出现乱码。

中文乱码出现的原因是gsoap 的 核心内部是入和出都是UTF8编码的,由于中文是多字节的,所以将多字节的按照UTF8转换,最终结果就是乱码。

2、问题排除

通过三方面检查:linux环境编码设置问题--Eclipse环境的编码设置问题--gsoap对string编解码设置。

2.1 linux环境编码设置

首先检查linux环境,可使用locate确认linux使用utf-8编码。

2.2 Eclipse环境设置

eclipse的编码很多地方可以设置,之前因为对环境不熟悉绕了很多弯路。现在彻底弄懂了。eclipse可以设置workspace的编码方式、项目的编码方式、文件的编码方式、debug的编码方式。我将以上4项均设置为utf-8.

更详细博客参考:《Eclipse中设置编码的方式》点击打开链接

2.3 gsoap对string的编码设置

对使用到的proxy初始化SOAP_C_MBSTRING

3、字符集与字符编码的总结

http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

字符集与字符编码

4、linux中转换字符

iconv实现文件的编码转换,也在代码中使用iconv:使用iconv命令轻松实现linux下字符集编码的转换

你可能感兴趣的:(onvif)