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];