ios中URL字符串的URLencode與URLdecode

url字符串中具有特殊功能的特殊字符的字符串,或者中文字符,作為參數用GET方式傳遞時,需要用urlencode處理一下


//URLEncode

? +(NSString*)encodeString:(NSString*)unencodedString{

? ? if([[[UIDevicecurrentDevice]systemVersion]floatValue] >=9.0) {

? ? ? ? ? ? return[unencodedString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLPathAllowedCharacterSet]];

}

NSString*encodedString = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)unencodedString,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8));

returnencodedString;
}

//URLDEcode

-(NSString *)decodeString:(NSString*)encodedString

{

//NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ];

NSString *decodedString? = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,

(__bridge CFStringRef)encodedString,

CFSTR(""),

CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));

return decodedString;


有用戶反饋,說iOS9之后,CFURLCreateStringByAddingPercentEscapes這個方法廢棄,所以根據官方的描述 替換使用stringByAddingPercentEncodingWithAllowedCharacters 這個方法。


stringByAddingPercentEncodingWithAllowedCharacters 需要傳遞參數NSCharacterSet

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容