2019独角兽企业重金招聘Python工程师标准>>>
//ARC模式下
//加密
- (NSString *)encodeToPercentEscapeString:(NSString *)url
{
NSString *outputStr =
(__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL, /* allocator */
(__bridge CFStringRef)url,
NULL, /* charactersToLeaveUnescaped */
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return outputStr;
}
//解码
+ (NSString *)decodeFromPercentEscapeString:(NSString *)url
{
NSMutableString *outputStr = [NSMutableString stringWithString:url];
[outputStr replaceOccurrencesOfString:@"+"
withString:@""
options:NSLiteralSearch
range:NSMakeRange(0,[outputStr length])];
return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
//1.非ARC模式下
// Encode all the reserved characters, per RFC 3986 // ()
+ (NSString *)encodeToPercentEscapeString:(NSString *)url {
NSString *outputStr =
(NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,(CFStringRef)url,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return outputStr;
}
+ (NSString *)decodeFromPercentEscapeString:(NSString *)url {
NSMutableString *outputStr = [NSMutableString stringWithString:url];
[outputStr replaceOccurrencesOfString:@"+"
withString:@" "
options:NSLiteralSearch
range:NSMakeRange(0, [outputStr length])];
return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}