日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

unicode 字符串转成 TDesC-转贴

發布時間:2023/12/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unicode 字符串转成 TDesC-转贴 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
unicode 字符串轉成 TDesC

所有描述符,其實都不是真實的類,而是一個typedef。在非內核模式的時候,所有的描述符,如TDesC,其真實的實現是TDesC16,在內核模式的時候,則是TDesC8。還是看名取義,帶8的是單字符1個字節的描述符,帶16的是寬字符2字節的描述符。在非內核態的時候,統一使用16位的描述符作為默認值,是為了兼容unicode編碼,幫助在不同語言下進行開發。大部分的系統API,提供的都是接受TDesC這樣typedef的接口,其實也就是unicode-16的16位描述符。但在一些io相關的接口,都是接受8結尾的單字符描述符,以兼容不同的數據格式。單字符描述符通常不會對編碼有任何約束,可以是二進制流,可以是utf-8,可以是一般的ascii碼。具體是什么,邏輯需要調用者自己來維護。為了將io讀入的數據傳遞給一些系統API,往往就需要將8位描述符轉成16位描述符。這種轉換和編碼有密切聯系,如果只是一般的ascii串(或者其他編碼的ascii部分...),可以使用TDes的Copy接口,從8位拷貝到16位,或者從16位拷貝到8位。從8位拷貝的16位,第一個字節填充對應的8位字符的內容,第二個字節填充的是'\0',就是全部為0。而從16位到8位,可想而知,后一個字節的內容被截取拋棄。但如果是一些復雜的編碼轉換,比如utf-8的字符流轉成系統所需的unicode-16,那么就需要用到CnvUtfConverter,它負責在不同的字符集中做轉換。

  其他字符類型類

  看到Symbian的描述符,最疑惑的不僅僅是那套復雜的繼承體系,還有_L和_LIT這樣的宏。打開_LIT這個宏,你可以看到,它其實就是定義一個TLitC類型的const static常量字符串。從意義上來說,通過_LIT,可以將一些常用的字符串作為常量存在,使其不會反復構造和析構,是空間換時間的策略;從接口上看,它重載了很多轉型運算符operator (),可以轉身成為TDesC的各個版本,與該繼承體系兼容;而從內存實現上來看,它存放的是:C++字符串的長度(除\0) + 原汁原味的C++字符串(就是\0結尾的一坨short int或者char數組...),通過這樣的結構,一方面可以和Symbian的描述符表示相一致,又可以享用C++的原始支持,一舉兩得。

  相比_LIT的華麗,_L這個宏就土鱉不少,代表了舊生產力的落后。它其實,就是定義一個TPtrC,TPtrC中的內容指向了一個常量的數組(typedef后叫做TText...),這個常量數組,其實就是有一個char或short int的數組轉型而成,也是原汁原味的C++字符串。從本質上來看,TPtrC扮演這個角色,完全是在人手短缺時的友情客串,它本不應該來做這件事情,因為其內部是通過一個指針來指向真實的字符空間,很多操作都經過多一次的取址操作,降低了效率;而TLexC,則是量身打造精心包裝天生大明星,它優化掉了那個作梗的指針,提高了效率。所以摒棄_L,擁抱_LIT,是所有Symbian教學都會呼吁的內容,還是合情合理的。。。

  還有一個常用的和字符串相關聯的東西,就是TLex類。它做的工作,就是大名鼎鼎的string-parsing。給它一個描述符,它可以還你一個整形數抑或是浮點數。TLex對數的解析,本質上還是基于ascii編碼的,你給它的描述符編碼,需要兼容ascii標準,不要拿個全角的數字為難它,它會罷工。

refer to: http://tech.ddvip.com/2009-05/1243588855121469_3.html

轉載于:https://www.cnblogs.com/zziss/archive/2010/07/18/1780273.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的unicode 字符串转成 TDesC-转贴的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。