将ë,à,é,ä等特殊字符转换为e,a,e,a?目标C.

Max*_*Max 15 sdk character objective-c

在目标c中是否有一种简单的方法可以将所有特殊字符(如ë,à,é,ä)转换为普通字符,如e en a?

Dav*_*ong 25

是的,这很简单:

NSString *src = @"Convert special characters like ë,à,é,ä all to e,a,e,a? Objective C";
NSData *temp = [src dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *dst = [[[NSString alloc] initWithData:temp encoding:NSASCIIStringEncoding] autorelease];
NSLog(@"converted: %@", dst);
Run Code Online (Sandbox Code Playgroud)

在我的机器上运行它会产生:

EmptyFoundation[69299:a0f] converted: Convert special characters like e,a,e,a all to e,a,e,a? Objective C
Run Code Online (Sandbox Code Playgroud)

基本上,我们要求字符串将其自身转换为NSData(即字节数组),表示ASCII字符集中字符串中的字符.由于并非原始字符串中的所有字符都是ASCII,我们告诉字符串可以进行"有损"转换.换句话说,可以将"é"变成"e",依此类推.

一旦我们得到了字节数组,我们只需将其转换回字符串即可,我们就完成了!:)