详解MTK系统中字符转换问题

详解MTK系统中字符转换问题

2011-09-05 19:02 佚名 互联网 字号:T | T
一键收藏,随时查看,分享好友!

MTK系统中字符转换问题是本文要介绍的内容,主要是来了解并学习MTK中一些小案例的应用,具体内容来看本文详解。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

MTK系统中字符转换问题是本文要介绍的内容,主要是来了解并学习MTK中一些小案例的应用,具体内容来看本文详解。如果我不想在ref_list.txt文件中加入我们的字符串字符,那么我们是否可以直接在代码里定义字符串呢?例如中文字符串,因为在代码里定义的中文字符串都是GB码的,而MTK系统对于字符函数API都只接受UNICODE编码的。

我们可以通过文件conversion.c文件中的函数mmi_chset_text_to_ucs2(.... )函数对GB编码的字符串进行转换;但是使用该函数是必须将宏__MMI_CHSET_GB2312__打开,否则转换后必定显示乱码;为什么会这样呢?我们看入下代码片断:

在conversion.c中的头部有如下代码片断:

  1. #if defined(__MMI_CHSET_BIG5__)  
  2. mmi_chset_enum g_chset_text_encoding = MMI_CHSET_BIG5;  
  3. #elif defined(__MMI_CHSET_GB2312__)  
  4. mmi_chset_enum g_chset_text_encoding = MMI_CHSET_GB2312;  
  5. #else   
  6. mmi_chset_enum g_chset_text_encoding = MMI_CHSET_UTF8;  
  7. #endif  

由此可见,如果我们不打开__MMI_CHSET_GB2312__宏,g_chset_text_encoding 就是不是MMI_CHSET_GB2312 值;而是其它值,则函数mmi_chset_text_to_ucs2(....)就不能对GB编码的字符串进行转换。

mmi_chset_text_to_ucs2(....)函数片断:

  1. kal_int32 mmi_chset_text_to_ucs2(kal_uint8 *dest, kal_int32 dest_size, kal_uint8 *src)  
  2. {  
  3.  /*----------------------------------------------------------------*/  
  4.  /* Local Variables*/  
  5.  /*----------------------------------------------------------------*/  
  6.  /*----------------------------------------------------------------*/  
  7.  /* Code Body*/  
  8.  /*----------------------------------------------------------------*/  
  9.  return mmi_chset_convert(g_chset_text_encoding, MMI_CHSET_UCS2, (char*)src, (char*)dest, dest_size);  

问题是我们如何打开宏__MMI_CHSET_GB2312__呢?

我们来看看MKT的features配置文件——MMI_features.h中的片断。

  1. #if defined(CFG_MMI_CHSET_GB2312) && (CFG_MMI_CHSET_GB2312 == __ON__) || \  
  2.  (defined(__MMI_LANG_CHSET_DEPENDENCE__) && defined(__MMI_LANG_SM_CHINESE__))  
  3.  #ifndef __MMI_CHSET_GB2312__  
  4.  #define __MMI_CHSET_GB2312__  
  5.  #endif  
  6. #endif 

那么宏CFG_MMI_CHSET_GB2312又在哪里呢?????

我们看看文件MMI_features_switch.h代码片断如下:

  1. /*  
  2.   Description: Turn on simple Chinese GB2312 charset  
  3.   Option: [__ON__, __OFF__, __AUTO__]  
  4.   Reference: SOP_Add_New_Charset_Conversion.doc  
  5. */  
  6.  
  7. #define CFG_MMI_CHSET_GB2312 (__AUTO__) 

[疑问]在配置文件MMI_features_type.h中有如下定义

  1. /* general on/off/auto type */  
  2. #define __ON__ (-1)  
  3. #define __OFF__(-2)  
  4. #define __AUTO__  (-3) 

其中__AUTO__ 不知道是什么意思??????

当然如果__MMI_CHSET_GB2312__没有被Enable,我们可以直接使用函数mmi_chset_convert()

该函数原形如下所示:

  1. /*****************************************************************************  
  2.  * FUNCTION  
  3.  *  mmi_chset_convert  
  4.  * DESCRIPTION  
  5.  *  Convert string between 2 character sets. (will add the terminate character)  
  6.  * PARAMETERS  
  7.  *  src_type  [IN]  Charset type of source  
  8.  *  dest_type [IN]  Charset type of destination  
  9.  *  src_buff  [IN]  Buffer stores source string  
  10.  *  dest_buff [OUT] Buffer stores destination string  
  11.  *  dest_size [IN]  Size of destination buffer (bytes)  
  12.  * RETURNS  
  13.  *  Length of destination string, including null terminator. (bytes)  
  14.  *****************************************************************************/  
  15. kal_int32 mmi_chset_convert(  
  16. mmi_chset_enum src_type,  
  17. mmi_chset_enum dest_type,  
  18. char *src_buff,  
  19. char *dest_buff,  
  20. kal_int32 dest_size); 

使用方式如下:

  1. mmi_chset_convert(MMI_CHSET_GB2312,MMI_CHSET_UCS2,(char * )soure_string,(char *)destion_string,source_size); 

小结:MTK系统中字符转换问题的内容介绍完了,希望通过本文的学习能对你有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java生鲜电商平台-微服务架构概述

Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中。尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化的速度迟缓并且变革动力不足。 其中…

Jensen不等式及其证明

• 詹森不等式以丹麦数学家约翰詹森(JohanJensen)命名。它给出积分的凸函数值和凸函数的积分值间的关系。 关于凸函数: if (-f)是凸函数(convex),则f是凹的(concave…

ios自带NSURLConnection下载文件

//同步下载,同步请求的主要代码如下 - (IBAction)downLoad:(id)sender { NSString *urlAsString"http://7jpnsh.com1.z0.glb.clouddn.com/TravelDemo.plist";//文件地址 NSURL *url[NSURL URLWithString:urlAsString]; NSURLRequest *request[NSURLRequest requestWi…

国外程序员整理的机器学习资源大全

本列表选编了一些机器学习领域牛B的框架、库以及软件(按编程语言排序)。 C 计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C, C, Python, Java 以及 MATLAB接口,并支持Windo…

五款帮助创业者迅速熟悉互联网创业的在线学习工具

相信很多有志青年都想借助互联网开拓自己的事业,可是经常面临一个很现实的问题——缺乏一定的专业知识和技能。没关系,互联网中的丰富教育资源就可以让你迅速地跨越这一障碍,熟悉与创业相关的运营、管理、融资等操作技巧。下面介绍的五个在线…

C++ 中复杂的声明

1、方法也是有类型的,方法的类型由返回类型和形参表决定。比如int F (int)的类型就是去掉方法名,int (int)。 2、对于方法类型,在返回类型和形参表之间,加上一个名称F,就表示一个特定的方法F。 3、思考,如果…

caffe 下测试 MNIST数据

详细说明可参考网页:http://blog.csdn.net/wangchuansnnu/article/details/44341753http://blog.sina.com.cn/s/blog_49ea41a20102w4uu.htmlhttp://www.cnblogs.com/yymn/p/4553671.html caffe 下 mnist 进行实验: MNIST,一个经典的手写数字库…

Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战

Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台- 什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕&#xff0c…

LInux 下安装 python notebook 及指向路径,运行计时,炫酷的深蓝午夜主题,本地登陆远程服务器

1. 安装 pip工具 sudo apt-get install pyton-pip 2. 安装ipython及其依赖包 sudo apt-get install ipython ipython-notebook 3. 安装可选的附加工具(需要时间较长) sudo apt-get install python-matplotlib python-scipy python-pandas python-sympy python-nose 4. 测试i…

对TypeScript进行研究

1.npm install -g typescript 在编辑器,将下面的代码输入到greeter.ts文件里: function greeter(person) {return "Hello, " person; } let user "Jane User"; document.body.innerHTML greeter(user); 我们使用了.ts扩展名&…

caffe 提取特征并可视化(已测试可执行)及在线可视化

网络结构在线可视化工具 http://ethereon.github.io/netscope/#/editor 参考主页: caffe 可视化的资料可在百度云盘下载 链接: http://pan.baidu.com/s/1jIRJ6mU 提取密码:xehi http://cs.stanford.edu/people/karpathy/cnnembed/ http://lijianch…

ncnn:提取所有层特征值

官方代码托管地址&#xff1a;https://github.com/Tencent/ncnn 在Extractor类中添加以下方法&#xff1a; int Extractor::extract_all_blobs() {for (int blob_index 0; blob_index < blob_mats.size(); blob_index){Mat outMat;extract(blob_index, outMat);// write to…

Caffe + Ubuntu 15.04/16.04 + CUDA 7.5/8.0 在服务器上安装配置及卸载重新安装(已测试可执行)

本文参考如下: caffe 安装所需的所有资源可在百度网盘下载 链接: http://pan.baidu.com/s/1jIRJ6mU 提取密码&#xff1a;xehi 在服务器上为每个子用户拷贝caffe 使用 Linux探索之旅 | 第一部分第四课&#xff1a;磁盘分区完成Ubuntu安装 Ubuntu16.04 1080Ti深度学习环境配…

ASP.NET MVC Action向视图传值之匿名类型

在使用ASP.NET MVC过程中想必大家都有遇到过一个问题就是我们的Action如何向视图传递匿名类型的值呢&#xff0c;如果不做特殊处理则无法实现。 接下来我们来看一个示例&#xff1a; 在我们的控制中&#xff1a; using System.Collections.Generic; using System.Web.Mvc;names…

2015伦敦深度学习峰会笔记(转载)

摘要&#xff1a;在伦敦举行的第三届深度学习峰会由RE.WORK主办&#xff0c;汇集了从工业领域到学术领域不同背景的专业人士&#xff0c;本文是该峰会第一天的笔记。包括Koray Kavukcuoglu、Sander Dieleman等知名深度学习专家分享了自己的经验。上周&#xff0c;我有机会参加在…

[webrtc] rtcp模块中rtt时间计算

RTT指 round-trip time&#xff0c;即计算AB两端的往返时延 这里可以分成两个问题&#xff1a; 如何在A端估算A和B之间的RTT时间? 如何在B端估算A和B之间的RTT时间? 本文参考资料:rfc 3550rfc 3611webrtc issue https://code.google.com/p/webrtc/issues/detail?id1613以及解…

Deep learning Reading List

本文转自&#xff1a; http://jmozah.github.io/links/ http://www.datakit.cn/blog/2014/12/31/Deep_learning_Reading_List.html 文章来自J Mohamed Zahoor的深度学习阅读书单。 Following is a growing list of some of the materials i found on the web for Deep Learning…

商户网站使用第三方支付的大致原理和实现

如果把商户网站使用第三方支付平台(比如支付宝)的原理搞清楚&#xff0c;那编程就变得简单多了。 整个过程大致这样&#xff1a; 1、商户与支付宝签约。2、在商户网站购买商品&#xff0c;填写数量&#xff0c;确定购买后跳转到结账页面。结账页面可能包括订单号、定单状态(已支…

Awesome Deep Vision

本文转自&#xff1a;https://github.com/kjw0612/awesome-deep-vision http://jiwonkim.org/awesome-deep-vision/ A curated list of deep learning resources for computer vision, inspired by awesome-php and awesome-computer-vision. Maintainers - Jiwon Kim, Heesoo …

GitHub 新出的 Actions 是什么? 用他做自动测试?

体验分享 本文一个尝鲜的体验分享, 并没有太复杂的技巧, 做了一个最少代码的例子展示, 让每个人都可以把action用起来, 如果路过的大牛有高级技巧请留言分享, 我会补充. 下面正文开始. 是什么? 是一个免费的操作系统容器(Linux/Windows/macOS), 我们可以让他预装开发环境(node…