有两种方法:
一,使用NSString的方法:
NSString* string2 = [string1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString* string1 = [string2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
二、使用CFStringRef的方法
sUrl = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)sUrl, nil, nil, kCFStringEncodingUTF8);
如果在所有的类里都要用到这个方法,可以写成category,然后在头文件import "NSString+URL.h" 即可调用.
@interface NSString (URL)
- (NSString *)URLEncodedString;
@end
但这两个方法,都不会处理URL中的保留字符,如果要处理保留字符,推荐使用Google的objective c 工具库 GTMNSString+URLArguments来处理:
http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMNSDictionary%2BURLArguments.h