字符串不会在iOS中进行url编码

时间:2012-02-08 03:05:04

标签: objective-c nsstring urlencode

我认真对待这里的大脑放屁,但我无法弄清楚为什么这对我的生活没有编码。一直在搜索,我甚至无法获取代码样本进行编码。有什么想法吗?

NSString *searchString = @"waffl&es";

NSString *encodedSearchString = [searchString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat:@"http://en.wikipedia.org/?search=%@", encodedSearchString];
NSURL *url = [NSURL URLWithString:urlString];

1 个答案:

答案 0 :(得分:24)

为了将来参考,这是我发现的工作(即正确编码所有内容)

+ (NSString*)encodeURL:(NSString *)string
{
    NSString *newString = (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));

    if (newString) 
    {
        return newString;
    }

    return @"";
}