使用CFStringTransform将中文转变为拼音

不废话,直接上代码.

- (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;
}

你可能感兴趣的:(使用CFStringTransform将中文转变为拼音)