iOS URL编码解码

前言

    编码:将不能用于url请求(get)的字符转为百分号编码的字符;

    解码:将百分号编码的字符转为对应的字符串;

实践

    例子:NSString *a = @"https://t.bd.cn/td?title=测试&img=http://f.bd.cn/20_05(fn).png?w=3&h=4";

    编码:

NSString *encodedString = [src stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"?!@#$^&%*+,:;='\"`<>()[]{}/\\| "].invertedSet];

//invertedSet:表示取相反的集合,作为允许的不需要转码的字符

    输出:https%3A%2F%2Ft.bd.cn%2Ftd%3Ftitle%3D%E6%B5%8B%E8%AF%95%26img%3Dhttp%3A%2F%2Ff.bd.cn%2F20_05%28fn%29.png%3Fw%3D3%26h%3D4

    解码:

方法1:NSString*decodedString = (__bridge_transferNSString*)CFURLCreateStringByReplacingPercentEscapes(NULL, (__bridgeCFStringRef)encodedString,CFSTR(""));

方法2:NSString*decodedString = [encodedString stringByRemovingPercentEncoding];

    输出:

https://t.bd.cn/td?title=测试&img=http://f.bd.cn/20_05(fn).png?w=3&h=4

扩展

    可以写到NSString的分类中,这样便于复用代码

你可能感兴趣的:(iOS URL编码解码)