首頁 後端開發 C#.Net教程 Symbian 關於字元編碼轉換

Symbian 關於字元編碼轉換

Dec 20, 2016 pm 02:51 PM

字串編碼中文表示常用的有:GB2312,GBK,Unicode,UTF-8 
其中GBK是GB2312的超集,也就是涵蓋了GB2312編碼的所有內容, 
UTF-8是Unicode的在網路傳輸中的一種編碼格式, 
如果我們使用vc做為開發工具,在win下面進行開發,那麼win 
的預設字元集是GBK的,而symbian系統預設的編碼方式卻是 
Unicode,也就是說直接寫在程式裡面的漢字在手機上顯示的時候, 
就會變成亂碼。
通常解決這個問題的方法有兩種: 
(1)靜態資源文件解決方案 
(2)動態的調用字符集轉換函數解決方案 

對呀第一種解決方案來說,需要手動編輯rss文件,把漢字內容部分改為UTF-8格式, 
在rss文件的末尾或者開頭添加:CHARACTER_SET UTF8   即可 
缺點是這種字符串一般針對靜態資源,如果是那種隨時根據數據變化更新漢字的情況
則需要考慮第二種情況 

第二種情況動態轉換字元集的方法 

常使用CCnvCharacterSetConverter和CnvUtfConverter這兩個類別進行轉換成Symbian系統認識的UnicodeC. 
CCnternter所有編碼轉換 

CnvUtfConverter這個類常UTF-8與Unicode 和UTF-7與Unicode之間的相互轉換 


新增頭檔 
#include GB mmp裡面加入 
LIBRARY         charconv.lib    // for GBK to Unicode converter 

這兩步驟完成後,重新編譯;下面的這兩個函數就可以用了。
void CMcAppUi::ConvGbk2Uni(TDesC8& original, TDes& res) { 
#ifndef __WINS__ 
       
        CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC(); 
        🎠 KCharacterSetIdentifierGbk,aFileServerSession)!=CCnvCharacterSetConverter::EAvailable)
                   TInt state=CCnvCharacterSetConverter::KStateDefault; 
        
        TPtr Length() ); 
        TPtr16 ptr = iInfoText->Des(); 
        
 tr, str, state)) 
                User::Leave(KErrArgument); 
     .Zero() ; 
        res.Copy(ptr) ; 
        aFileServerSession.Close();  delete iInfoText; 
#else 
        res.Format(_L("wayne len %d"), original.Length()) ; 
#endif 


void CMcAppUi::ConvUni2Gbk(TDesC& original, TDes8& res) { 
#ifndef __WINSSetter KStateDefault ; 
        CCnvCharacterSetConverter* iConv ; 
        iConv = CCnvCharacterSetConverter: :NewLC(); 
        if(iConv->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, 
    ter::EAvailable) 
                User::Leave(KErrNotSupported); 
     ) ; 
CleanupStack::PopAndDestroy() ; 
#else 
        res.Format(_L8("wayne chen %s"), original) ; #endifTB
} TBuf  title16 ; 
TBuf8  msg8 ; 
TBuf   msg16 ; 
title8.Format(_L8("友情提示")) ; 
ConvGbk2Uni(title8, title16) ; 
msg8.Format(_L8(" 謝謝您的使用")) ; 
ConvGbk2Uni(msg8, msg16) ; 
ShowInfoDialog(title16, msg16) ; 
即可,現在title16和msg16裡面都存放的是16位元的uniho

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

c語言編譯器怎麼加下一格 c語言編譯器怎麼加下一格 Mar 03, 2025 pm 05:44 PM

c語言編譯器怎麼加下一格

c語言編譯器網頁版有哪些? c語言編譯器網頁版有哪些? Mar 03, 2025 pm 05:42 PM

c語言編譯器網頁版有哪些?

c語言編譯器複製代碼方法 c語言編譯器複製代碼方法 Mar 03, 2025 pm 05:43 PM

c語言編譯器複製代碼方法

C語言中NULL的替代方案有哪些 C語言中NULL的替代方案有哪些 Mar 03, 2025 pm 05:37 PM

C語言中NULL的替代方案有哪些

c語言編譯器哪個好? c語言編譯器哪個好? Mar 03, 2025 pm 05:39 PM

c語言編譯器哪個好?

c語言在線編程網站 c語言編譯器官方網站匯總 c語言在線編程網站 c語言編譯器官方網站匯總 Mar 03, 2025 pm 05:41 PM

c語言在線編程網站 c語言編譯器官方網站匯總

C語言中NULL在現代編程中還重要嗎 C語言中NULL在現代編程中還重要嗎 Mar 03, 2025 pm 05:35 PM

C語言中NULL在現代編程中還重要嗎

c語言編譯器安裝教程(電腦版) c語言編譯器安裝教程(電腦版) Mar 03, 2025 pm 05:41 PM

c語言編譯器安裝教程(電腦版)

See all articles