I have a category class for NSString.
@implementation NSString (URLEncode) - (NSString *)URLEncodedString { __autoreleasing NSString *encodedString;
-(NSString *) urlEncoded { CFStringRef encodedCfStringRef = CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)self,NULL,(CFStringRef)@"!*'\"();@+$,%#[]% ",kCFStringEncodingUTF8 ); NSString *endcodedString = (NSString *)CFBridgingRelease(encodedCfStringRef); return endcodedString; }