前言
在实际开发中,我们可能需要将汉字转成拼音作为请求参数向服务器请求数据。比如查询天气数据,用户输入或选择需要查询的城市的天气情况,肯定录入的是中文,而请求天气接口要求的参数形式为拼音,那么这个时候我们就需要将中文转换成拼音了,具体实现方式在后面提及。
实现
为简便,这里我直接贴上转换代码,各位可根据实际需要转换成自己需要的形式。
- (void)viewDidLoad {
[super viewDidLoad];
// 初始化中文字符
NSString *hanziText = @"中国四川";
// 判断中文长度
if (hanziText.length > 0) {
// 将中文字符串转成可变字符串
NSMutableString *pinyinText = [[NSMutableString alloc] initWithString:hanziText];
// 先转换为带声调的拼音
CFStringTransform((__bridge CFMutableStringRef)pinyinText, 0, kCFStringTransformMandarinLatin, NO);
NSLog(@"pinyin: %@", pinyinText); // 输出 pinyin: zhōng guó sì chuān
// 再转换为不带声调的拼音
CFStringTransform((__bridge CFMutableStringRef)pinyinText, 0, kCFStringTransformStripDiacritics, NO);
NSLog(@"pinyin: %@", pinyinText); // 输出 pinyin: zhong guo si chuan
// 转换为首字母大写拼音
NSString *capitalPinyin = [pinyinText capitalizedString];
NSLog(@"capitalPinyin: %@", capitalPinyin); // 输出 capitalPinyin: Zhong Guo Si Chuan
// 截取首字母
NSLog(@"the first letter is '%@'.", [capitalPinyin substringToIndex:1]); // 输出 the first letter is 'Z'.
}
}