iOS 中文轉拼音

2021-07-07 08:09:45 字數 1444 閱讀 3811

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或者kcfstringtransformtolatinkcfstringtransformtolatin也可適用於非漢字字串):

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...