Skip to content

Instantly share code, notes, and snippets.

@mrtj
Last active December 12, 2015 10:48
Show Gist options
  • Save mrtj/4761298 to your computer and use it in GitHub Desktop.
Save mrtj/4761298 to your computer and use it in GitHub Desktop.
URL encoding and decoding utility class extension for NSString #nsstring #utility #url-encoding #url-decoding #objective-c
#import <Foundation/Foundation.h>
@interface NSString (URLEncoding)
- (NSString*)URLEncodedString;
- (NSString*)URLDecodedString;
@end
#import "NSString+URLEncoding.h"
@implementation NSString (URLEncoding)
- (NSString*)URLEncodedString
{
CFStringRef encodedCFString = CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault, (__bridge CFStringRef)self, NULL, NULL, kCFStringEncodingUTF8);
#if __has_feature(objc_arc)
NSString *encodedString = CFBridgingRelease(encodedCFString);
#else
NSString* encodedString = [((__bridge NSString*) encodedCFString) autorelease];
#endif
return encodedString;
}
- (NSString*)URLDecodedString
{
CFStringRef decodedCFString = CFURLCreateStringByReplacingPercentEscapesUsingEncoding(
kCFAllocatorDefault, (__bridge CFStringRef)self, CFSTR(""), kCFStringEncodingUTF8);
#if __has_feature(objc_arc)
NSString *decodedString = CFBridgingRelease(decodedCFString);
#else
NSString* decodedString = [((__bridge NSString*) decodedCFString) autorelease];
#endif
return decodedString;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment