环境:cocos2dx 3.10

1.vs环境下编译windows版本,需要增加头文件和链接库
①cocos2d-x-3.10\external\win32-specific\icon\include
②cocos2d-x-3.10\external\win32-specific\icon\prebuilt

2.编译android版本,需要修改Android.mk文件增加iconv支持
①LOCAL_WHOLE_STATIC_LIBRARIES += android_support
②$(call import-module, android/support)

3.转换函数

 #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
#include "iconv.h"
#elif CC_TARGET_PLATFORM == CC_PLATFORM_IOS
#include <iconv.h>
#elif CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
#include "iconv.h"
#endif int iconv_convert(void *src, unsigned int src_len, const char *src_charset, void *dest, unsigned int dest_len, const char *dest_charset)
{
int ret = -;
iconv_t oConv = iconv_open(dest_charset, src_charset);
if (oConv == (iconv_t)(-))
{
cocos2d::log("ERROR: unable to open libiconv.");
return ret;
} #ifdef _WIN32
const char *in = (const char *)src;
#else
char *in = (char *)src;
#endif
char *out = (char *)dest;
size_t src_left = src_len, dest_left = dest_len; //dest_len目标长度不够的话,会进入这里
//in_left表示还有多少长度输入没有转换,out_left表示还有长度输出剩余
if (iconv(oConv, &in, &src_left, &out, &dest_left) != (size_t)(-)){
//返回转换了多少空间,用来计算剩余多少空间(可以用于确定写入\0的位置;但是如果src中已经包含了\0则无需再写入)
ret = dest_len - dest_left;
} iconv_close(oConv); return ret;
} /*
//使用例子
char inStr[] = "China中国 Test";
char outStr[1024] = {};
if (iconv_convert(&inStr, sizeof(inStr), "GBK", &outStr, sizeof(outStr), "UTF-8") > 0){
Label* label1 = Label::createWithSystemFont(outStr, "fonts/arial.ttf", 24);
}
*/

iconv编码转换的更多相关文章

  1. PHP iconv()编码转换函数用法示例

    PHP iconv()字符编码转换函数的用法,iconv()函数,在php5中是内置的,语法格式:iconv("UTF- 8","GB2312//IGNORE" ...

  2. gbk转utf-8 iconv 编码转换

    linux以下有时候 字符须要进行编码转换(爬虫将gbk转为utf-8编码...).一般能够选择iconv函数. 终端以下  输入 man 3 iconv 得到  iconv函数的用法. 个人看习惯了 ...

  3. iconv编码转换指令

    看到一个不错的指令iconv,可以对文件编码进行转换,记录如下: iconv --list 列出所有支持转换的编码 icon -f code1 -t code2 filename -o newfile ...

  4. iconv编码转换报错问题

    今天,再由ISO-8859编码格式转化为UTF-8格式过程中,出现报错:iconv: 未知 10304 处的非法输入序列. 问题分析:ISO-8859是英文格式的编码方式,不支持中文,为了解决中文支持 ...

  5. iconv字符编码转换

    转自 http://blog.csdn.net/langresser_king/article/details/7459367 iconv(http://www.gnu.org/software/li ...

  6. (转)PHP下编码转换函数mb_convert_encoding与iconv的使用说明

    之--http://www.jb51.net/article/21451.htm mb_convert_encoding这个函数是用来转换编码的.原来一直对程序编码这一概念不理解,不过现在好像有点开窍 ...

  7. PHP下编码转换函数mb_convert_encoding与iconv的使用说明

    mb_convert_encoding这个函数是用来转换编码的. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码, ...

  8. php 字符编码转换函数 iconv mb_convert_encoding比较

    在使用PHP处理字符串时,我们经常会碰到字符编码转换的问题,你碰到过iconv转换失败吗? 发现问题时,网上搜了搜,才发现iconv原来有bug ,碰到一些生僻字就会无法转换,当然了配置第二个参数时, ...

  9. iconv 文件编码转换

    iconv 文件编码转换 http://www.cnblogs.com/xuxm2007/archive/2010/11/09/1872379.html 查看iconv的支持的编码: $ iconv  ...

随机推荐

  1. mysql服务器上的mysql这个实例中表的介绍

    1.user表. 分个分隔符

  2. n是否是2的幂

    实例五:n是否是2的幂 方法一:result=n&(n-1) 如果result=0 则n是2的幂方法二:result=n&((~n)+1) 如果result=n 则n是2的幂 原数   ...

  3. Trove系列(八)——Trove的配置管理相关的功能介绍

    概述MySQL 配置管理功能允许Trove 用户重载由Trove服务的操作者提供的缺省MySQL配置环境.这是通过影响MySQL 的includedir 命令来实现的.这些MySQL 的include ...

  4. Hadoop学习之路(二十四)YARN的资源调度

    YARN 1.1.YARN 概述 YARN(Yet Another Resource Negotiator) YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操 作系 ...

  5. 怎么查看是否安装Scrapy

    1.在python shell 下输入 import scrapy

  6. quartz开源作业调度框架的配置

    quartz开源作业调度框架的job服务实现,Quartz是一个完全由java编写的开源作业调度框架,使用时候需要创建一个实现org.quartz.Job接口的java类,Job接口包含唯一的方法: ...

  7. python进程同步,condition例子

    #coding=utf-8import multiprocessing as mpimport time def consumer(cond):    with cond:        print ...

  8. Request 对象 response 对象 常见属性

    请求和响应 Express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据. app.get('/', function (req, res) { // - ...

  9. 手撕vue-cli配置——utils.js篇

    utils.js文件主要是用来处理各种css loader的,比如css-loader,less-loader等. //引入path模块 const path = require('path') // ...

  10. MySQL Crash Course #20# Chapter 28. Managing Security

    限制用户的操作权限并不是怕有人恶意搞破坏,而是为了减少失误操作的可能性. 详细文档:https://dev.mysql.com/doc/refman/8.0/en/user-account-manag ...