不废话,直接上代码.
- (NSString *)convertToPinyinWithChineseCharactor:(NSString *)charactor {
//1.将字符串转变为可变
NSMutableString *charactorM = [NSMutableString stringWithString:charactor];
//2.将可变字符串转变为带声调的拼音
/**
* string 要转换的字符串,要转成CFMutableStringRef格式
* range 要转换的范围.如果为NULL,表示全部转换
* transform 要进行怎么样模式的转换
* reverse 该转换是否必须是可逆向转换的。
*
* 返回一个boolean值,表示是否转换成功
*/
Boolean success = CFStringTransform((CFMutableStringRef)charactorM, NULL, kCFStringTransformMandarinLatin, false);
if (success == false) {
NSLog(@"转换出错 -- 1");
return nil;
}
NSLog(@"%@", charactorM);
//3.去掉声调
Boolean successT = CFStringTransform((CFMutableStringRef)charactorM, NULL, kCFStringTransformStripDiacritics, NO);
if (successT == false) {
NSLog(@"转换出错 -- 2");
return nil;
}
NSLog(@"%@", charactorM);
return charactorM;
}