MTK个人入门笔记(有关编码)

本文介绍了MTK平台中将GB码转换为UNICODE编码的方法,重点讲解了mmi_chset_text_to_ucs2函数的使用,并探讨了如何通过配置文件启用__MMI_CHSET_GB2312__宏,以及当该宏未启用时使用mmi_chset_convert函数的转换过程。还提到了直接将字符转换为UCS2码显示的另一种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTK使用ref_list.txt文件统一加载字符进行统一的转换

将GB码转换成UNICODE编码,因为MTK系统对于字符函数API都只接受UNICODE编码!

以下我想介绍两种直接输出GB码的方式!

 

方式一:

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

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

 

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

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

 

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

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

 

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

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

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

 

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

该函数原形如下所示:

 

 

 

使用方式如下:

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

 

 

此为方式一!调用MTK内部API

 

 

 

其中还有方式二:

直接将要显示的字符转换为UCS2码就可以显示了;需要小工具可找我索取!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1.  S8 sPrompt[]="/x2D/x4E/xFD/x56/x00/x00";   
  2.  DisplayPopup( (PU8)sPrompt,IMG_GLOBAL_WARNING, 0, 1000, (U8)WARNING_TONE );   

 

 

 

 

ps:

 

将以下写入txt文件,保存成html,使用浏览器打开即可!

 

<script type="text/javascript">
document.write(unescape("%u738B%u5FC5%u8D85"));  
</script>

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值