iOS开发中URL中不合法字符的转义
2016-11-24 09:09
399 查看
通常我们在拼接网络请求Url的时候,比如请求网络图片,通过get方法请求网络数据,有时会遇到请求失败的问题,于是各种找原因,就是不明白问题出在哪里。我也是遇到了这种问题最后才发现我本来请求接口里有个“+”,而到服务器端反馈给我的信息显示变成了空格“ ”,后来才反应过来,原来是请求之前要对url中的特殊字符进行转义!
通常用到的URL转义有两种方式:
方式一:stringByAddingPercentEscapesUsingEncoding(有些特殊的字符不能转义比如“+”)
方式二:CFURLCreateStringByAddingPercentEscapes(有一个需要转义的字符集,可以将所有需要转义的字符转义成百分数)
NSString *encodeUrlStr=(__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridge CFStringRef)urlStr,CFSTR("!*'();:@&=+$,/?%#[]"),CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); 转义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中包含有特殊字符时需要转义
- ios-day21-01(对URL中的中文或特殊字符添加百分号转义、把经过百分号转义的URL还原)
- url特殊字符转义及解决方法
- iOS 中的 url 中文和特殊字符编码问题
- URL特殊字符需转义
- ios开发中使用正则表达式识别处理字符串中的URL
- iOS开发之获取系统相册中的图片与视频(内带url转换)
- IOS 开发中对url中的参数进行URLEncode编码的实现
- ios开发特殊符号大全:字符+键盘符...
- URL特殊字符的转义
- iOS开发:字符编码-判断NSString是纯汉字还是含有汉字
- 网址URL中特殊字符转义编码
- IOS 开发中判断NSString是否为空字符
- URL特殊字符需转义
- [iOS开发]-判断是否合法邮箱
- URL特殊字符需转义
- iOS开发-iOS中URL字符串的URLencode与URLdecode
- url特殊字符转义及解决方法
- IOS开发中判断字符串是否为空字符的方法
- Objective-C ,ios,iphone开发基础:如何判断一个字符是不是中文字符。计算一段字符串的长度。