标签:
在ios开发中经常碰需要将汉字转成拼音的情况,以下就是我把汉字转成拼音的方法
+ (NSString *)transform:(NSString *)chinese{
//将NSString装换成NSMutableString
NSMutableString *pinyin = [chinese mutableCopy];
//将汉字转换为拼音(带音标)
CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformMandarinLatin, NO);
NSLog(@"%@", pinyin);
//去掉拼音的音标
CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformStripCombiningMarks, NO);
NSLog(@"%@", pinyin);
//返回最近结果
return pinyin;
}
用kCFStringTransformMandarinLatin
方法转化出来的是带音标的拼音,如果需要去掉音标,则继续使用kCFStringTransformStripCombiningMarks
方法即可。
在iOS中实现上述功能,其实主要是CFStringTransform
方法出了大力气,我们来重点介绍下这个方法
//函数原型
Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);
在上述参数中,重点也是难点的是 transform 参数,这个参数是一个CFStringRef类型的参数;来到头文件,我们会发现,这个参数的值有很多
我们来粗略的介绍下上面这些值的作用,如下图:
从上图我们可以看出,利用这些值,我们输入左边(Input)的语言,那么结果为右边(Output)的;
上面有些还没有介绍,就不再一一介绍了,这里我再重点介绍一个我们上面用到的kCFStringTransformStripCombiningMarks
,他的功能就是去掉原有字符串中的音标或者类似于音标的符号。
标签:
原文地址:http://blog.csdn.net/hastar521/article/details/51350762