2011-11-01 92 views
3
surnameField.text = "Fal à èà ò l'opo";  

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

我会删除重音符号。删除字符串的所有口音

结果 “Falaeaolopo”

回答

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]; 

这将删除所有的accents..To删除所有空格

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

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

+0

小心,这不仅删除口音,删除其他字符,如西班牙字母'ñ'例如。 – jherran

0

尝试在的NSString的dataUsingEncoding:allowLossyConversion:方法。

+0

我认为是NSString中不适用的方法 – Maurizio

+0

只需使用'initWithData:encoding:'(NSString)将NSData转换为字符串即可。 –

1

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