使用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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,267评论 25 709
  • 开发中我们有时候需要将中文转成拼音,如通讯录应用等。废话不多说,直接上代码。(Swift 3.0) 常量说明:kC...
    Hesse_Huang阅读 644评论 0 3
  • 在一个美丽的王国里有三个公主叫冷雨曦公主和微凉公主还有冷雨凉,三位公主住在一个美丽的王国里,那个王国...
    鬼娃玛丽阅读 518评论 0 0
  • 精油是油吗? 精油因为高流动性,所以称为“油”,但是和我们日常用的植物油可不是同一种物质哦。根据现代化学理论,精油...
    蛋糕合唱团阅读 2,636评论 0 1
  • 早上七点半给国胜电话,告诉他我准备出发了,结果等我到九点多才下高速。刚下高速就看到班主任三个电话,孩子又惹祸...
    徐丽红阅读 195评论 0 1