diff --git a/CGDWebServer/GCDWebServer.h b/CGDWebServer/GCDWebServer.h index 2d2b415..fe85029 100644 --- a/CGDWebServer/GCDWebServer.h +++ b/CGDWebServer/GCDWebServer.h @@ -36,6 +36,7 @@ extern "C" { #endif NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension); +NSString* GCDWebServerEscapeURLString(NSString* string); NSString* GCDWebServerUnescapeURLString(NSString* string); NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form); diff --git a/CGDWebServer/GCDWebServer.m b/CGDWebServer/GCDWebServer.m index 399a8c0..dd23c1f 100644 --- a/CGDWebServer/GCDWebServer.m +++ b/CGDWebServer/GCDWebServer.m @@ -105,9 +105,12 @@ NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension) { return mimeType ? mimeType : kGCDWebServerDefaultMimeType; } +NSString* GCDWebServerEscapeURLString(NSString* string) { + return ARC_BRIDGE_RELEASE(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":@/?&=+"), kCFStringEncodingUTF8)); +} + NSString* GCDWebServerUnescapeURLString(NSString* string) { - return ARC_BRIDGE_RELEASE(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)string, CFSTR(""), - kCFStringEncodingUTF8)); + return ARC_BRIDGE_RELEASE(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)string, CFSTR(""), kCFStringEncodingUTF8)); } NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form) {