Objective-CでのURLエンコード方法のメモ

APIのリクエストなどのパラメータにURLを使用する場合、
NSStringのstringByAddingPercentEscapesUsingEncoding:では+や&などがエスケープされない。

なので、CFURLCreateStringByAddingPercentEscapesを使用し、エスケープさせたい文字列を直接指定する。

//エンコードするURL
NSString *targetUrl = @”http://hogehoge.com”
//エンコード
NSString *encodedUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)org,
NULL,
CFSTR(“;,/?:@&=+$#”),
kCFStringEncodingUTF8
);

Apple – CFURL Reference

http://developer.apple.com/library/ios/#documentation/CoreFoundation/Reference/CFURLRef/Reference/reference.html

広告