2011-11-01 148 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編碼。