iPhone開発--Obj-CでデータなどをURLEncoding符号化


Objective-cでネットワークプログラミングを行う場合、+番号を符号化すると%2 bになるようにURLEncoding符号化にデータを変換することがよくある.ここでは実装を示します.
//NSString+URLEncoding.h
#import 
 
@interface NSString (URLEncodingAdditions)
- (NSString *)URLEncodedString;
- (NSString *)URLDecodedString;
@end
//NSString+URLEncoding.m
#import "NSString+URLEncoding.h"
@implementation NSString (OAURLEncodingAdditions)
 
- (NSString *)URLEncodedString
{
    NSString *result = (NSString *)
       CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                  (CFStringRef)self,
                                                  NULL,
                                                  CFSTR("!*'();:@&=+$,/?%#[] "),
                                                  kCFStringEncodingUTF8);
    [result autorelease];
    return result;
}
 
- (NSString*)URLDecodedString
{
    NSString *result = (NSString *)
       CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
						(CFStringRef)self,
				 		CFSTR(""),
	  					kCFStringEncodingUTF8);
    [result autorelease];
    return result;
}
@end

NSStringを拡張しているので、使うときは比較的簡単ですが、まずこのクラスのファイルにNSString+URLEncodingを導入します.hヘッダファイルは、NSStringのURLEncodedStringとURLDecodedStringメソッドを直接使用します.たとえば、NSString*urlToken=[token URLEncodedString];
転載先:http://www.voland.com.cn/urlencoding_for_objective-c