##URL编解码
前言:
一般在请求的时候参数中带有中文的时候经常会用到一个编码方法:
stringByAddingPercentEscapesUsingEncoding
相比大家都比较熟悉 用UTF-8进行编码,但是在项目中遇到webView拦截url来做交互的时候(JS OC 交互 协议截取 URL截取 以及注入的笨方法…)发现有一些特殊字符解码过程会出现问题.于是有了下边的一些探讨和学习.
为啥用到编码?
1.Size过大
2.包含隐私数据
3.URL本身而言,歧义...
对于最后一种比较常见,例如服务器通过截取& = 来区分你的key 和value.一旦你的参数中包含了&=则就会分割错误引起歧义从而需要编码.
URL可以包含那些字符?
PFC3086(个人也不清楚是个啥..应该是个标准) 规定URL只能包含:
a – > z
A – > Z
- _ . ~ 四个特殊字符
! * ‘ ( ) : ; @ & = + $ , / ? # [ ] 18个保留字符
需要编码的字符有哪些?
空格 <> % # { } | \ [ ] ’ ~ 不安全字符
以及其他特殊字符(这些字符往往在URL里有自己特有的意义)