Objective-C
iPhone
iOS

Objective-Cで文字列をURLエンコード/デコードする

More than 3 years have passed since last update.

NSStringをURLエンコード/デコードする方法です。


方法


エンコード


encode

NSString *escapedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(

NULL,
(CFStringRef)text, // ← 元のテキスト
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingUTF8);


デコード


decode

NSString *decodedString = (NSString *) CFURLCreateStringByReplacingPercentEscapesUsingEncoding(

NULL,
(CFStringRef)text, // ← 元のテキスト
CFSTR(""),
kCFStringEncodingUTF8);


注意

NSStringで用意されている以下のメソッドを使用した場合、

エンコード/デコードしてくれない記号や特殊文字があります。


encode/decode

// エンコード

NSString *escapedString = [text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// デコード
NSString *decodedString = [text stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];