美文网首页
URL出现特殊字符时的处理

URL出现特殊字符时的处理

作者: McDuff | 来源:发表于2018-08-14 23:07 被阅读155次

遇到一个问题,webview加载一段URL显示不了,URL是正确的,后来发现url路劲里有个#号,打印的时候被转义了,导致页面显示不出来,特意去网上找了下资料,记录下:

stringByAddingPercentEscapesUsingEncoding
该方法只对 `#%^{}[]|\"<> 加空格共14个字符编码,不包括”&?”等符号,
iOS9将淘汰,建议用stringByAddingPercentEncodingWithAllowedCharacters方法

stringByAddingPercentEncodingWithAllowedCharacters方法需要传一个参数NSCharacterSet对象。
关于 NSCharacterSet 这篇 文章说的很好

NSCharacterSet举例说明:

URLFragmentAllowedCharacterSet  "#%<>[\]^`{|}

URLHostAllowedCharacterSet      "#%/<>?@\^`{|}

URLPasswordAllowedCharacterSet  "#%/:<>?@[\]^`{|}

URLPathAllowedCharacterSet      "#%;<>?[\]^`{|}

URLQueryAllowedCharacterSet     "#%<>[\]^`{|}

URLUserAllowedCharacterSet      "#%/:<>?@[\]^`

当URL里有特殊字符不需要转义时,处理方法:

NSString *unreserved = @"-._~/?#:";
NSMutableCharacterSet *allowed = [NSMutableCharacterSet alphanumericCharacterSet];
[allowed addCharactersInString:unreserved];
NSString *result = [string stringByAddingPercentEncodingWithAllowedCharacters:allowed];

参考:https://www.jianshu.com/p/21a21866e379

相关文章

网友评论

      本文标题:URL出现特殊字符时的处理

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