/* Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse); 其中string參數是要轉換的string,好比要轉換的中文,同時它是mutable的,所以也直接做爲最終轉換後的字符串。range是要轉換的範圍,同時輸出轉換後改變的範圍,若是爲NULL,視爲所有轉換。transform能夠指定要進行什麼樣的轉換,這裏能夠指定多種語言的拼寫轉換。reverse指定該轉換是否必須是可逆向轉換的。若是轉換成功就返回true,不然返回false。 */ - (NSString *)transform:(NSString *)chiness { NSMutableString *pinyin = [chiness mutableCopy]; //將漢字轉換成帶音標的拼音 CFStringTransform((__bridge CFMutableStringRef) pinyin, NULL, kCFStringTransformMandarinLatin, NO); NSLog(@"%@",pinyin); //將音標字母轉換爲普通字母 CFStringTransform((__bridge CFMutableStringRef) pinyin, NULL, kCFStringTransformStripCombiningMarks, NO); NSLog(@"%@",pinyin); //若是有多音字,須要本身手動改 //以下 if ([[(NSString *)pinyin substringToIndex:1] compare:@"重"] == NSOrderedSame) { [pinyin replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chong"]; } return pinyin; }