按字符串删除所有重音符号

时间:2011-11-01 10:44:58

标签: ios objective-c

surnameField.text = "Fal à èà ò l'opo";    

// remove space and apostrophe
NSString *surnarmeInput = [[surnameField.text stringByReplacingOccurrencesOfString:@" " withString:@""] stringByReplacingOccurrencesOfString:@"'" withString:@""];

我也会删除重音符。

结果“Falaeaolopo”

3 个答案:

答案 0 :(得分:11)

// convert to a data object, using a lossy conversion to ASCII
NSData *asciiEncoded = [yourOriginalString dataUsingEncoding:NSASCIIStringEncoding
                         allowLossyConversion:YES];

// take the data object and recreate a string using the lossy conversion
NSString *other = [[NSString alloc] initWithData:asciiEncoded
                                        encoding:NSASCIIStringEncoding];
// relinquish ownership
[other autorelease];

将删除所有重音符号。删除所有空格

NSString *yourFinalString = [other stringByReplacingOccurrencesOfString:@" " withString:@""];

删除重音的第一部分,从this线程中的dreamlax的答案复制的代码..

答案 1 :(得分:1)

使用dataUsingEncoding:allowLossyConversion:似乎不适用于某些字符 - 例如Đ和đ。我对这些进行了特定的检查,然后是ascii编码。

答案 2 :(得分:0)

尝试使用NSString中的dataUsingEncoding:allowLossyConversion:方法。