Hauptmenü

Werkzeuge

Kategorien

Archiv

urlencode/urldecode in ObjectivC

Erstellt in IPhone SDK am 19. November 2011 vom Daschmi

Um einen String per GET zu übergeben muss er codiert werden. Dies kann folgende Funktion erledigen:

- (NSString *)urlencode:(NSString *)value {

    return (NSString *)CFURLCreateStringByAddingPercentEscapes(
        nil,
        (CFStringRef)value,
        nil,
        (CFStringRef)@"!*'();:@&=+$,/?%#[]",
        kCFStringEncodingUTF8
    );

}

In iOS5:

- (NSString *)urlencode:(NSString *)value {

    NSString *strReturn = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                                              nil,
                                                                              (__bridge CFStringRef)value,
                                                                              nil,
                                                                              (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                              kCFStringEncodingUTF8
                                                                              );

    return strReturn; 

}

Das decodieren kann man mit folgender Funktion erreichen:

- (NSString *)urldecode:(NSString *) value {

 NSString *result = [(NSString *)value stringByReplacingOccurrencesOfString:@"+" withString:@" "];
 result = [result stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

 return result;

}