一 把汉字转换成拼音的方法1:
-(void)chChangePin{// 把汉字转换成拼音第一种方法NSString *str = [[NSString alloc]initWithFormat:@"%@", str1];// NSString 转换成 CFStringRef 型CFStringRef string1 = (CFStringRef)CFBridgingRetain(str);NSLog(@"%@", str);// 汉字转换成拼音CFMutableStringRef string = CFStringCreateMutableCopy(NULL, 0, string1);// 拼音(带声调的)CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO);NSLog(@"%@", string);// 去掉声调符号CFStringTransform(string, NULL, kCFStringTransformStripDiacritics, NO);NSLog(@"%@", string);// CFStringRef 转换成 NSStringNSString *strings = (NSString *)CFBridgingRelease(string);// 去掉空格NSString *cityString = [strings stringByReplacingOccurrencesOfString:@" " withString:@""];NSLog(@"%@", cityString);}
结果如下:
二、汉字转拼音2
这种方法在传值的时候不灵活,到转换成无声调的(有空格符的)拼音和去掉空格的方式和第一种一样:
- (void)change2{CFMutableStringRef string2 = CFStringCreateMutableCopy(NULL,0,CFSTR("第二种"));NSLog(@"%@",string2);// 带声调符号拼音CFStringTransform(string2,NULL, kCFStringTransformMandarinLatin,NO);NSLog(@"%@",string2);// 去掉声调符CFStringTransform(string2,NULL, kCFStringTransformStripDiacritics,NO);NSLog(@"%@",string2);// CFStringRef 转换成NSStringNSString*string3 = (NSString*)CFBridgingRelease(string2);// 去掉 空格NSString*cityString2 = [string3 stringByReplacingOccurrencesOfString:@"" withString:@"" ];NSLog(@"%@",cityString2);}
结果如下:
注意:在转换的过程中涉及很对定义的名字,自己使用的时候不要把变量的名字高混淆