最近在做微信、QQ分享網(wǎng)頁鏈接時(shí)遇到一個(gè)很坑的問題,iOS9后url的encode 方法對(duì)特殊字符 ?!@#$^&%*+,:;='"`<>()[]{}/\| 的處理好像沒有以前完美了,在調(diào)起QQ分享url時(shí)經(jīng)常報(bào)參數(shù)錯(cuò)誤,仔細(xì)排查后發(fā)現(xiàn)是特殊字符影響了QQ的調(diào)起
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,也比較繁瑣,需要遍歷替換,后來又找了另外一個(gè)處理方式
2、
reportName = [reportName stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "].invertedSet];