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

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];
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值