iconv编码转换
环境: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编码转换的更多相关文章
- PHP iconv()编码转换函数用法示例
PHP iconv()字符编码转换函数的用法,iconv()函数,在php5中是内置的,语法格式:iconv("UTF- 8","GB2312//IGNORE" ...
- gbk转utf-8 iconv 编码转换
linux以下有时候 字符须要进行编码转换(爬虫将gbk转为utf-8编码...).一般能够选择iconv函数. 终端以下 输入 man 3 iconv 得到 iconv函数的用法. 个人看习惯了 ...
- iconv编码转换指令
看到一个不错的指令iconv,可以对文件编码进行转换,记录如下: iconv --list 列出所有支持转换的编码 icon -f code1 -t code2 filename -o newfile ...
- iconv编码转换报错问题
今天,再由ISO-8859编码格式转化为UTF-8格式过程中,出现报错:iconv: 未知 10304 处的非法输入序列. 问题分析:ISO-8859是英文格式的编码方式,不支持中文,为了解决中文支持 ...
- iconv字符编码转换
转自 http://blog.csdn.net/langresser_king/article/details/7459367 iconv(http://www.gnu.org/software/li ...
- (转)PHP下编码转换函数mb_convert_encoding与iconv的使用说明
之--http://www.jb51.net/article/21451.htm mb_convert_encoding这个函数是用来转换编码的.原来一直对程序编码这一概念不理解,不过现在好像有点开窍 ...
- PHP下编码转换函数mb_convert_encoding与iconv的使用说明
mb_convert_encoding这个函数是用来转换编码的. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码, ...
- php 字符编码转换函数 iconv mb_convert_encoding比较
在使用PHP处理字符串时,我们经常会碰到字符编码转换的问题,你碰到过iconv转换失败吗? 发现问题时,网上搜了搜,才发现iconv原来有bug ,碰到一些生僻字就会无法转换,当然了配置第二个参数时, ...
- iconv 文件编码转换
iconv 文件编码转换 http://www.cnblogs.com/xuxm2007/archive/2010/11/09/1872379.html 查看iconv的支持的编码: $ iconv ...
随机推荐
- mysql服务器上的mysql这个实例中表的介绍
1.user表. 分个分隔符
- n是否是2的幂
实例五:n是否是2的幂 方法一:result=n&(n-1) 如果result=0 则n是2的幂方法二:result=n&((~n)+1) 如果result=n 则n是2的幂 原数 ...
- Trove系列(八)——Trove的配置管理相关的功能介绍
概述MySQL 配置管理功能允许Trove 用户重载由Trove服务的操作者提供的缺省MySQL配置环境.这是通过影响MySQL 的includedir 命令来实现的.这些MySQL 的include ...
- Hadoop学习之路(二十四)YARN的资源调度
YARN 1.1.YARN 概述 YARN(Yet Another Resource Negotiator) YARN 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操 作系 ...
- 怎么查看是否安装Scrapy
1.在python shell 下输入 import scrapy
- quartz开源作业调度框架的配置
quartz开源作业调度框架的job服务实现,Quartz是一个完全由java编写的开源作业调度框架,使用时候需要创建一个实现org.quartz.Job接口的java类,Job接口包含唯一的方法: ...
- python进程同步,condition例子
#coding=utf-8import multiprocessing as mpimport time def consumer(cond): with cond: print ...
- Request 对象 response 对象 常见属性
请求和响应 Express 应用使用回调函数的参数: request 和 response 对象来处理请求和响应的数据. app.get('/', function (req, res) { // - ...
- 手撕vue-cli配置——utils.js篇
utils.js文件主要是用来处理各种css loader的,比如css-loader,less-loader等. //引入path模块 const path = require('path') // ...
- MySQL Crash Course #20# Chapter 28. Managing Security
限制用户的操作权限并不是怕有人恶意搞破坏,而是为了减少失误操作的可能性. 详细文档:https://dev.mysql.com/doc/refman/8.0/en/user-account-manag ...