iOS開發(fā)中URL中不合法字符的轉(zhuǎn)義

? ? 通常我們在拼接網(wǎng)絡請求Url的時候,比如請求網(wǎng)絡圖片,通過get方法請求網(wǎng)絡數(shù)據(jù),有時會遇到請求失敗的問題,于是各種找原因,就是不明白問題出在哪里。我也是遇到了這種問題最后才發(fā)現(xiàn)我本來請求接口里有個“+”,而到服務器端反饋給我的信息顯示變成了空格“ ”,后來才反應過來,原來是請求之前要對url中的特殊字符進行轉(zhuǎn)義!

? ? 通常用到的URL轉(zhuǎn)義有兩種方式:

? ? 方式一:stringByAddingPercentEscapesUsingEncoding(有些特殊的字符不能轉(zhuǎn)義比如“+”)

NSString*encodeUrlStr=[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

? ? 方式二:CFURLCreateStringByAddingPercentEscapes(有一個需要轉(zhuǎn)義的字符集,可以將所有需要轉(zhuǎn)義的字符轉(zhuǎn)義成百分數(shù))

NSString*encodeUrlStr=(__bridge_transfer NSString*)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridge CFStringRef)urlStr,CFSTR("!*'();:@&=+$,/?%#[]"),CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));

? ? 轉(zhuǎn)義URL一般會用在涉及加密解密的時候,因為正常的字符串加密之后就可能會出現(xiàn)&,+,#等等特殊的符號。

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

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

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