iOS中URLEncode將空格轉(zhuǎn)義成“%20”,而java會(huì)將其轉(zhuǎn)義成“%20”或者“+”

今天在跟服務(wù)器的同學(xué)聯(lián)調(diào)接口時(shí),發(fā)現(xiàn)了個(gè)極其坑爹的BUG,傳遞給服務(wù)器的參數(shù)中如果有空格,就會(huì)報(bào)錯(cuò),如果沒(méi)有空格就一切正常。
檢查了N久才最終發(fā)現(xiàn)是URLEncode的問(wèn)題:
iOS轉(zhuǎn)義完成后,參數(shù)中的空格被轉(zhuǎn)義成了“%20”,而服務(wù)端轉(zhuǎn)義完成后,參數(shù)中的空格被轉(zhuǎn)義成了“+”;

在Stack Overflow上找到了詳細(xì)點(diǎn)的解釋:URL encoding the space character: + or %20?
簡(jiǎn)單來(lái)說(shuō)就是:%20是比較老一點(diǎn)的寫法,現(xiàn)在的做法是:url中的“?”前的空格要轉(zhuǎn)義成“%20”,“?”之后的空格要轉(zhuǎn)義成“+”!
而java的系統(tǒng)自帶方法也是這么做的;但iOS系統(tǒng)自帶的[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];方法還是將空格轉(zhuǎn)義成了“%20”.
本來(lái)服務(wù)端是兼容“%20”這種轉(zhuǎn)義方式的,
但這邊為了安全自己做了轉(zhuǎn)義,所以才會(huì)踩到這個(gè)坑;
記錄一下,希望可以幫到有緣人~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 很多人想成為萬(wàn)眾矚目的明星,卻不知道該怎么做?下面和大家談?wù)勎业慕?jīng)歷和想法,以及成為明星的途徑! 一、網(wǎng)絡(luò)選秀 [...
    堯久久閱讀 6,388評(píng)論 1 2
  • 今天的關(guān)鍵詞:每天堅(jiān)持“閱讀”一兩篇文章,對(duì)自己有什么幫助? 閱讀是一種習(xí)慣,而這種習(xí)慣來(lái)源你的自律; 很多時(shí)候我...
    30065閱讀 5,174評(píng)論 0 1
  • 感恩每天都能認(rèn)真用心的寫感恩日記!沒(méi)有想著為了寫感恩日記去寫,而是每天晚上細(xì)心的回想一天的好種子,記錄著他人對(duì)我的...
    開(kāi)荒者cx閱讀 219評(píng)論 0 1

友情鏈接更多精彩內(nèi)容