/*
Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);
其中string参数是要转换的string,比如要转换的中文,同时它是mutable的,因此也直接作为最终转换后的字符串。range是要转换的范围,同时输出转换后改变的范围,如果为NULL,视为全部转换。transform可以指定要进行什么样的转换,这里可以指定多种语言的拼写转换。reverse指定该转换是否必须是可逆向转换的。如果转换成功就返回true,否则返回false。
如果要进行汉字到拼音的转换,我们只需要将transform设定为kCFStringTransformMandarinLatin或者
kCFStringTransformToLatin(kCFStringTransformToLatin也可适用于非汉字字符串):
*/
NSString *stringTest = @"今日踽踽独行,他日展翅高飞";
NSMutableString *ms = [[NSMutableString alloc] initWithString:stringTest];
if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO))
{
NSLog(@"Pinyin: %@", ms);//有音标
}
if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformStripDiacritics, NO))
{
NSLog(@"Pinyin: %@", [[ms uppercaseString] substringToIndex:1]);
NSLog(@"Pinyin: %@",ms);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/judy_luo/article/details/46972799