Skip to content

Instantly share code, notes, and snippets.

@ianchia
Forked from mrtj/NSString+URLEncoding.h
Created October 16, 2013 05:18
Show Gist options
  • Save ianchia/7002961 to your computer and use it in GitHub Desktop.
Save ianchia/7002961 to your computer and use it in GitHub Desktop.
#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