iOS URLEcode,URLDecode
iOS 涉及網路編程的時候就需要與伺服器存在httpurl 互動
如果說url中存在漢字,或者需要上傳圖片,那麼就得考慮urlEncode(否則會出現網址不對)
同樣接收到伺服器返回的一些資訊可能也存在同樣問題,這時伺服器可能會返回urlEcode,用戶端就需要解碼urlDecode
其實方法很簡單,只需建立如下兩個方法即可
編碼 URLEncodedString
-(NSString *)URLEncodedString:(NSString *)str{ NSString *encodedString = (NSString *) CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, (CFStringRef)@!*'();:@&=+$,/?%#[], kCFStringEncodingUTF8)); return encodedString;}
解碼 URLDecodedString
-(NSString *)URLDecodedString:(NSString *)str{ NSString *decodedString=(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)str, CFSTR(), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); return decodedString;}
調用方法:
NSString *readyEcodeStr=@adsfa asdfa s+asdf;//準備urlecode的字串 NSString *ecodeStr=[self URLEncodedString:readyEcodeStr]; NSLog(@readyEcodeStr=%@ ecodeStr=%@,readyEcodeStr,ecodeStr);
列印出來的log如下:
readyEcodeStr=adsfa asdfa s+asdf
ecodeStr=adsfa%20asdfa%20s%2Basdf
ok基本上實現了