iOS NSString URLencode

33 篇文章 0 订阅

目录

 

1.写在前面

2.iOS 9.0之前

3.iOS 9.0之后


1.写在前面

上周公司的一个项目,是GET方式的请求,需要在请求的Url中拼接,特殊字符的字符串,或者中文字符,作为参数传递,这就需要用urlencode处理一下。当然,有时作为Post参数传递,也有需要urlencode处理的情况,具体看自己的业务要求。

 

2.iOS 9.0之前

+ (NSString*)JP_URLEncodedString:(NSString*)unencodedString {


	 NSString *encodedString = (NSString *)
	 CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
																				  (CFStringRef)unencodedString,
																				  NULL,
																				  (CFStringRef)@"!*'();:@&=+$,/?%#[]",
																				  kCFStringEncodingUTF8));

	 return encodedString;
}

可以看到有警告

警告⚠️ 说iOS 9就不再使用上面的方法了

去系统方法里面有也可以看到,红色标记的说明了 

3.iOS 9.0之后

+ (NSString *)JP_URLEncodedString:(NSString *)unencodedString{
	 
	NSString *charactersToEscape = @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";//#%<>[\]^`{|} //@"!*'();:@&=+$,/?%#[]"
	NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:charactersToEscape] invertedSet];
	NSString *encodedString = [unencodedString stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];
	 return encodedString;
}

 系统内置的一些返回CharacterSet

NSCharacterSet`系统内置的一些返回CharacterSet 的方法
- URLFragmentAllowedCharacterSet  "#%<>[\]^`{|}
- URLHostAllowedCharacterSet      "#%/<>?@\^`{|}
- URLPasswordAllowedCharacterSet  "#%/:<>?@[\]^`{|}
- URLPathAllowedCharacterSet      "#%;<>?[\]^`{|}
- URLQueryAllowedCharacterSet     "#%<>[\]^`{|}
- URLUserAllowedCharacterSet      "#%/:<>?@[\]^`

具体例子就不贴出来了,下面的地址可以作为测试使用

在线测试网址 http://tool.chinaz.com/tools/urlencode.aspx

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西Sensei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值