stringByAddingPercentEscapesUsingEncoding
will convert the Unicode* character to the percent escape format.
stringByReplacingPercentEscapesUsingEncoding
will do the opposite, convert the percent escape to the Unicode*.
*Actually not Unicode, but the encoding you choose.
Examples:
NSString *rawText = @"One Broadway, Cambridge, MA";
NSString *encodedText = [rawText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Encoded text: %@", encodedText);
NSString *decodedText = [encodedText stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Original text: %@", decodedText);
Here’s the output:
Encoded text: One%20Broadway,%20Cambridge,%20MA
Original text: One Broadway, Cambridge, MA
Disadvantage: stringByAddingPercentEscapesUsingEncoding
doesn’t encode reserved characters like ampersand (&) and slash (/)
Workaround:use Foundation function CFURLCreateStringByAddingPercentEscapes
instead.
Source: http://cybersam.com/ios-dev/proper-url-percent-encoding-in-ios