詳解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); ?
  10. }?

問題是我們如何打開宏__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.pswp.cn/news/247173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247173.shtml
英文地址,請注明出處:http://en.pswp.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…