cfstringtransform
這篇文章後,發現系統本身已經提供了乙個這樣的函式。
ios在corefoundation中提供了cfstringtransform函式,但在foundation中卻沒有相對應的方法。它的定義如下:
boolean cfstringtransform(cfmutablestringref string, cfrange *range, cfstringref transform, boolean reverse);
其中string
引數是要轉換的string,比如要轉換的中文,同時它是mutable的,因此也直接作為最終轉換後的字串。range
是要轉換的範圍,同時輸出轉換後改變的範圍,如果為null,視為全部轉換。transform
可以指定要進行什麼樣的轉換,這裡可以指定多種語言的拼寫轉換。reverse
指定該轉換是否必須是可逆向轉換的。如果轉換成功就返回true
,否則返回false
。
如果要進行漢字到拼音的轉換,我們只需要將transform
設定為kcfstringtransformmandarinlatin
或者kcfstringtransformtolatin
(kcfstringtransformtolatin
也可適用於非漢字字串):
cfmutablestringref string = cfstringcreatemutablecopy(null, 0, cfstr("中國"));
cfstringtransform(string, null, kcfstringtransformmandarinlatin, no);
nslog(@"%@", string);
這段**將輸出:
2013-11-22 14:41:14.644 test[2436:907] zhōng guó
可以看出,cfstringtransform
正確的輸出了「中國」的拼音,而且還帶上了音標。有時候我們不需要音標怎麼辦?還好cfstringtransform
同時提供了將音標字母轉換為普通字母的方法kcfstringtransformstripdiacritics
。我們在上面的**基礎上再加上這個:
cfstringtransform(string, null, kcfstringtransformstripdiacritics, no);
nslog(@"%@", string);
那麼最終將輸出:
2013-11-22 14:47:00.380 test[2470:907] zhong guo
中文轉拼音
中文轉拼音的類c 實現 code using system using system.collections.generic using system.text using system.collections endregion 獲得漢字的拼音,如果輸入的是英文本元將原樣輸出,中文標點符號將被忽略...
Flex中文轉拼音
package return ret param char unicode格式的乙個中文字元 return 中文字元的聲母 example var chinesechar string 我 var py string convert.convertchar chinesechar trace py ...
C 中文轉拼音
專案裡面有乙個功能是將使用者的名字轉變成拼音全拼,但是在使用過程中,有很多人的名字是生僻字,程式根本找不到那個字的拼音,後來看 才發現,轉拼音這個類居然是將乙個個的漢字列舉的 且不說這樣列舉會增加多大的工作量,光這漢字之多,能列舉的完嗎?建立乙個pinyinhelper類,引入microsoft.i...