iOS Url 编码解码

为什么需要URL编码

  • URL中有些字符会引起歧义
    • 例如:URL参数字符串中使用键值对(key=value)的方式来传参,键值对之间以&符号分隔,因此键值中的&符号必须进行编码
  • URL的编码格式采用的是ASCII码,而不是Unicode
  • URL中不能包含任何非ASCII字符,例如中文

URL编码、解码

  • URL编码的原则
    • 就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符
  • 中文、空格字符编码
    • stringByAddingPercentEscapesUsingEncoding(只对 `#%^{}[]|\”<> 加空格共14个字符编码,不包括”&?”等符号)
  • stringByAddingPercentEncodingWithAllowedCharacters( ios9)
NSString * resourcePath = @"https://www.baidu.com/文件夹"
// 编码
(iOS9.0以下使用)
NSString *str3 =[resourcePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
(iOS9.0以及以上使用)
NSString *str3 =
[resourcePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *str3 =
[resourcePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}\"[]|\\<>"].invertedSet];
  • 中文、空格字符解码
    • stringByReplacingPercentEscapesUsingEncoding
    • stringByRemovingPercentEncoding (ios9)
NSString * resourcePath = @"https://www.baidu.com/文件夹";  
// 解码
(iOS9.0以下使用)
NSString *str2 = [resourcePath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
(iOS9.0以及以上使用):
NSString *str2 = [resourcePath stringByRemovingPercentEncoding];

友情链接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.URL编码 2.URL解码 ios 9.0中已经替换此方法
    MdWhat阅读 13,628评论 0 5
  • 1.url编码 ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: 2.url解码 请求后,...
    萝BAIBAI阅读 11,628评论 2 6
  • 编码 URLEncodedString 解码 URLDecodedString 调用方法 打印出来的log如下...
    anny_4243阅读 4,402评论 0 1
  • 参考iOS开发探索-Base64编码iOS URL编码&base64编码URL安全的Base64编码,解码 为什么...
    differ_iOSER阅读 12,338评论 5 17
  • 对HG先生的记忆,已经很模糊了。有些事情甚至不知道是不是真的在他身上发生的。 HG先生是小柒初入社会的第一个领导。...
    柒宫主阅读 3,777评论 0 1