汉字转拼音,ch开头被转换成z开头问题
2017-04-14 11:53
393 查看
很多时候有这样的需求
细心的朋友会发现,我上面的字母里面没有C开头的,其实我的数据里面是有的,我的数据是:长城,但是调用系统的方法,给我转成了'Z'开头的,在'Z'的那一栏,我就疯了。
后来发现,原来像"长"这种多音字都会转错,目前我找到的解决办法只能是:
//*string是要转换的字符串*/
- (NSString *)transformMandarinToLatin:(NSString *)string
{
/*复制出一个可变的对象*/
NSMutableString *preString = [string mutableCopy];
/*转换成成带音 调的拼音*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO);
/*去掉音调*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);
/*多音字处理*/
if ([[(NSString *)string substringToIndex:1] compare:@"长"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chang"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"沈"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 4) withString:@"shen"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"厦"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 3) withString:@"xia"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"地"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 3) withString:@"di"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"重"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chong"];
}
return preString;
}
细心的朋友会发现,我上面的字母里面没有C开头的,其实我的数据里面是有的,我的数据是:长城,但是调用系统的方法,给我转成了'Z'开头的,在'Z'的那一栏,我就疯了。
后来发现,原来像"长"这种多音字都会转错,目前我找到的解决办法只能是:
//*string是要转换的字符串*/
- (NSString *)transformMandarinToLatin:(NSString *)string
{
/*复制出一个可变的对象*/
NSMutableString *preString = [string mutableCopy];
/*转换成成带音 调的拼音*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO);
/*去掉音调*/
CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);
/*多音字处理*/
if ([[(NSString *)string substringToIndex:1] compare:@"长"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chang"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"沈"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 4) withString:@"shen"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"厦"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 3) withString:@"xia"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"地"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 3) withString:@"di"];
}
if ([[(NSString *)string substringToIndex:1] compare:@"重"] == NSOrderedSame)
{
[preString replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chong"];
}
return preString;
}
相关文章推荐
- C#将汉字转换成全拼的拼音EcanConvertToCh帮助类 (转)
- 轻松解决汉字和拼音转换问题!!
- 关于汉字和拼音对照片的制作问题
- sql函数:汉字转换为拼音
- javascript 汉字与拼音转换
- 转换字符串中汉字为其拼音缩写
- 把我们的汉字转换成为以拼音首字母的关键字的方法
- javascript汉字转换成拼音
- 转换字符串中汉字为其拼音缩写(C#)
- Java实现汉字转换为拼音
- 汉字转换为拼音 (实用的类)
- Java实现汉字转换为拼音
- 汉字,五笔,拼音的转换
- ACCESS 中如何解决中文、汉字、文字转拼音的问题?
- asp汉字的拼音转换
- 汉字转换成拼音
- Java实现汉字转换为拼音
- 汉字转换成拼音
- 转换字符串中汉字为其拼音缩写(C#)