我需要从 NSString 获取 url 字符串。我执行以下操作:
NSString * str = [NSString stringWithString:@"i@gmail.com"];
NSString * eStr = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",eStr);
结果是 i@gmail.com。但我需要 i%40gmail.com。用 NSASCIIStringEncoding 替换 NSUTF8StringEncoding 没有帮助。
最佳答案
你用错了方法。这恰恰相反,转换百分比
逃到他们的角色。你可能想使用
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了解更多关于所使用的功能和 如何使其满足您的需求。
关于objective-c - NSString stringByReplacingPercentEscapesUsingEncoding 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774741/