Escape

URLエンコード&デコード(iOS7以上)このブロックを編集する
NSString *targetString = @"http://hogehoge.com/?param=!*'();:@&=+$,/?%#[]";
NSString *encodeString = [targetString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]];
NSString *decodeString = [encodeString stringByRemovingPercentEncoding];
NSLog(@"encode %@", encodeString);
NSLog(@"decode %@", decodeString);

指定文字以外をエンコード&デコードする(a, b以外)このブロックを編集する
NSString *targetString = @"aaaaa,bbbb";
NSString *encodeString = [targetString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"ab"]];
NSString *decodeString = [encodeString stringByRemovingPercentEncoding];
NSLog(@"encode %@", encodeString);
NSLog(@"decode %@", decodeString);

指定文字(UTF8)をエンコード&デコードするメソッドこのブロックを編集する
/**
*  URLエンコードする。
*  @param  string エンコード対象文字列
*  @return コンコード文字列
*/
- (NSString *)urlEncode:(NSString *)string
{
  return (__bridge_transfer NSString *)
   CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                           (CFStringRef)string,
                                           NULL,
                                           CFSTR("!*'();:@&=+$,/?%#[]"),
                                           kCFStringEncodingUTF8);
}


- (NSString *)urlDecode:(NSString *)string
{
  return (NSString *)
   CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(
                                                                             kCFAllocatorDefault,
                                                                             (__bridge CFStringRef)string,
                                                                             CFSTR(""),
                                                                             kCFStringEncodingUTF8));
}
最終更新:2015年10月07日 14:23