以前有一次做一个天气预报的项目,有一个功能是输入城市名,请求该城市的天气,需要把汉字转化成拼音,比如深圳——>shenzhen,加入到参数中。当时在网上找了一下,网友给出的方法很多都用不了,现在给出一种系统自带的方法。
- (void)viewDidLoad {
[super viewDidLoad];
NSString *str = @"乱七八糟";
[self transChinaseToPinYin:str];
}
-(NSString*)transChinaseToPinYin:(NSString*)hanzi{
NSMutableString *msg = [[NSMutableString alloc] initWithString:hanzi];
NSLog(@"msg1:%@",msg); //msg:乱七八糟
//将汉字转成带声调的拼音
CFStringTransform((__bridge CFMutableStringRef)msg, 0, kCFStringTransformMandarinLatin, NO);
NSLog(@"msg2:%@",msg); //msg:luàn qī bā zāo
//将带声调的拼音——>不带声调的拼音
CFStringTransform((__bridge CFMutableStringRef)msg, 0, kCFStringTransformStripDiacritics, NO);
NSLog(@"msg3:%@",msg); //luan qi ba zao
//将不带声调的拼音中的空格去掉
NSString *pinYin = [msg stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"pinYin:%@",pinYin); //luanqibazao
return pinYin;
}