现在的位置: 首页 > 综合 > 正文

IOS中对Url进行编码和解码

2018年02月13日 ⁄ 综合 ⁄ 共 1600字 ⁄ 字号 评论关闭

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
{
        NSStringoutputStr = (__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];

}


转自:http://blog.csdn.net/tianyitianyi1/article/details/17579997






抱歉!评论已关闭.