Reputation: 1922
I using this function to get a URL from a String, but how can I get it back?
- (NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding forString:(NSString *)string {
string = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)string, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", CFStringConvertNSStringEncodingToEncoding(encoding));
return string;
}
Upvotes: 4
Views: 5315
Reputation: 1182
[string stringByReplacingPercentEscapesUsingEncoding:NSUTF8Encoding];
BTW. If use NSURL
for file url, be sure to use [url path]
to get the unescaped path string, not by [url absoluteString]
.
Upvotes: 15
Reputation: 1922
I found the answer myself:
- (NSString *)decodedURLString {
NSString *string = (__bridge NSString*)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
(CFStringRef)self,
CFSTR(""),
CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return string;
}
and for encode:
- (NSString *)encodedURLString {
NSString *string = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR(":/=,!$&'()*+;[]@#?"),
CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return string;
}
Upvotes: -1
Reputation: 2253
Use this code..
NSError* error = nil;
NSString* text = [NSString stringWithContentsOfURL:your_url encoding:NSASCIIStringEncoding error:&error];
may this will help you
Upvotes: 0