iOSアプリ開発の逆引き辞典

iPhone/iPadで使えるアプリ開発のTipsをまとめてみました

URLエンコード/URLデコードする

非ARC環境

URLLエンコードをおこなう

CFURLCreateStringByAddingPercentEscapes関数を使ってURLエンコードします。

// URLエンコードをおこなう
- (NSString*) stringByUriEscape:(NSString*)text {
    NSString *r = (NSString*)CFURLCreateStringByAddingPercentEscapes(
        kCFAllocatorDefault,
        (CFStringRef)text,
        NULL,
        (CFStringRef)@"!*'();:@&=+$,/?%#[]",
        kCFStringEncodingUTF8);
    return [r autorelease];
}

URLデコードをおこなう

CFURLCreateStringByReplacingPercentEscapesUsingEncoding関数を使ってURLデコードします。

// URLデコードをおこなう
- (NSString*) stringByUriUnescape:(NSString*)text {
    NSString *r = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(
        kCFAllocatorDefault,
        (CFStringRef)text,
        CFSTR(""),
        kCFStringEncodingUTF8);
    return [r autorelease];
}