我需要从NSString获取url字符串。我做了以下事情:
NSString * str = [NSString stringWithString:@"i@gmail.com"];
NSString * eStr = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",eStr);
结果是i@gmail.com。但我需要i%40gmail.com。用NSASCIIStringEncoding替换NSUTF8StringEncoding没有帮助。
答案 0 :(得分:12)
您使用的是错误的方法。这恰恰相反,翻译百分比
逃避他们的角色。你可能想用
stringByAddingPercentEscapesUsingEncoding:
。
NSString *str = @"i@gmail.com";
NSString *eStr =
[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
除此之外,默认情况下@
字符看起来没有被转义。然后,
正如上述方法的文档所指出的那样,您需要使用
CoreFoundation实现您想要的目标。
NSString *str = @"i@gmail.com";
CFStringRef eStr = CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)str,
NULL,
(CFStringRef)@"@",
kCFStringEncodingUTF8
);
NSLog(@"%@", eStr);
CFRelease(eStr);
请检查documentation以了解有关所用功能的更多信息 如何使其符合您的需求。