美文网首页iOS服务器部分程序员iOS学习笔记
iOS开发中URL中不合法字符的转义

iOS开发中URL中不合法字符的转义

作者: 绿豆粥与茶叶蛋 | 来源:发表于2016-11-24 08:54 被阅读240次

        通常我们在拼接网络请求Url的时候,比如请求网络图片,通过get方法请求网络数据,有时会遇到请求失败的问题,于是各种找原因,就是不明白问题出在哪里。我也是遇到了这种问题最后才发现我本来请求接口里有个“+”,而到服务器端反馈给我的信息显示变成了空格“ ”,后来才反应过来,原来是请求之前要对url中的特殊字符进行转义!

        通常用到的URL转义有两种方式:

        方式一:stringByAddingPercentEscapesUsingEncoding(有些特殊的字符不能转义比如“+”)

    NSString*encodeUrlStr=[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        方式二:CFURLCreateStringByAddingPercentEscapes(有一个需要转义的字符集,可以将所有需要转义的字符转义成百分数)

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

        转义URL一般会用在涉及加密解密的时候,因为正常的字符串加密之后就可能会出现&,+,#等等特殊的符号。

    相关文章

      网友评论

        本文标题:iOS开发中URL中不合法字符的转义

        本文链接:https://www.haomeiwen.com/subject/owkbpttx.html