IOS中对Url进行编码和解码示例

时间:2022-06-02 08:30:52

本文主要介绍IOS中对Url进行编码解码示例,具体如下:

1.非ARC模式下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
+ (NSString *)encodeToPercentEscapeString: (NSString *) input {    // Encode all the reserved characters, per RFC 3986    // ()
 
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模式下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- (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:NSLiteralSearchrange:NSMakeRange(0,
 [outputStr length])];return
 [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/tianyitianyi1/article/details/17579997