String won't url encode in iOS

I’m seriously having a brain fart here, but I can’t figure out why this isn’t encoding for the life of me. Been searching all over, and I can’t even get the code samples to encode. Any ideas?

NSString *searchString = @"waffl&es";

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

  • iOS Present modal view controller on startup without flash
  • Making the launch image display longer xcode
  • Is there any difference between BOOL and Boolean in Objective-C?
  • Is NSMutableString's -appendString: method an efficient way to build up a large string?
  • Game Center - Sending and receiving data
  • Arm64 architecture in xcode 5.1
  • Solutions Collect From Internet About “String won't url encode in iOS”

    For future reference, this is what I found to work (i.e. encode everything properly)

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