iOS处理URL中特殊字符的方法

最近在做微信、QQ分享网页链接时遇到一个很坑的问题,iOS9后url的encode 方法对特殊字符 ?!@#$^&%*+,:;='"`<>()[]{}/\| 的处理好像没有以前完美了,在调起QQ分享url时经常报参数错误,仔细排查后发现是特殊字符影响了QQ的调起
1、替换url中的特定字符

字符    -    URL编码值

空格    -    %20
"          -    %22
#         -    %23
%        -    %25
&         -    %26
(          -    %28
)          -    %29
+         -    %2B
,          -    %2C
/          -    %2F
:          -    %3A
;          -    %3B
<         -    %3C
=         -    %3D
>         -    %3E
?         -    %3F
@       -    %40
\          -    %5C
|          -    %7C 

reportName = [reportName stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

第一种方法比较low,也比较繁琐,需要遍历替换,后来又找了另外一个处理方式
2、

reportName = [reportName stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "].invertedSet];

你可能感兴趣的:(iOS处理URL中特殊字符的方法)