您的位置:首页 > 移动开发 > IOS开发

IOS中对Url进行编码和解码

2014-08-12 15:16 435 查看
1.非ARC模式下

- (NSString *)encodeToPercentEscapeString: (NSString *) input
{
// Encode all the reserved characters, per RFC 3986
// (<http://www.ietf.org/rfc/rfc3986.txt>)
NSString *outputStr = (NSString *)
CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)input,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return outputStr;
}

- (NSString *)decodeFromPercentEscapeString: (NSString *) input
{
NSMutableString *outputStr = [NSMutableString stringWithString:input];
[outputStr replaceOccurrencesOfString:@"+"
withString:@" "
options:NSLiteralSearch
range:NSMakeRange(0, [outputStr length])];

return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}


2. ARC模式下

- (NSString *)encodeToPercentEscapeString: (NSString *) input

{

NSString* outputStr = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(


NULL, /* allocator */

(__bridge CFStringRef)input,

NULL, /* charactersToLeaveUnescaped */

(CFStringRef)@"!*'();:@&=+$,/?%#[]",

kCFStringEncodingUTF8);


return
outputStr;

}

- (NSString *)decodeFromPercentEscapeString: (NSString *) input

{

NSMutableString *outputStr = [NSMutableString stringWithString:input];

[outputStr replaceOccurrencesOfString:@"+"

withString:@""

options:NSLiteralSearch

range:NSMakeRange(0,
[outputStr length])];

return
[outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: