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

ios对于字符串的url编码和解码问题

2015-12-27 19:12 573 查看
ios通过下面系统方法进行url编解码

1.url编码:

NSString * encodingString = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

2.url解码:

NSString *str = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

但是,上面两个系统方法:

编码,不会对于特殊字符进行处理的。比如"!*'();:@&=+$,/?%#[]"。

解码,不会"+"就需要我们做特殊处理。如下方法

3.自定义编码:

- (NSString *)encodeToOriginalString: (NSString *) {
NSString* outputStr = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(

NULL, /* allocator */

(__bridge CFStringRef)input,

NULL, /* charactersToLeaveUnescaped */

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

kCFStringEncodingUTF8);

return outputStr;
}

4.自定义解码

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

return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios URL编码解码