...">
美文网首页
iOS url出现特殊字符处理

iOS url出现特殊字符处理

作者: HOULI | 来源:发表于2021-12-23 14:36 被阅读0次

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

stringByAddingPercentEncodingWithAllowedCharacters 需要传一个 ****NSCharacterSet 对象(关于 NSCharacterSet 这篇 文章说的很好)

如[NSCharacterSet URLQueryAllowedCharacterSet]

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

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

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

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

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

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

(2)网络访问请求:中文空格字符解码

stringByRemovingPercentEncoding ---- xcode7可能会提示要将stringByAddingPercentEscapesUsingEncoding替换成此方法,要根据是否是解码来区分

代替 stringByAddingPercentEscapesUsingEncoding

 let customAllowedSet =  NSCharacterSet(charactersInString:"`#%^{}\"[]|\\<> ").invertedSet

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

相关文章

网友评论

      本文标题:iOS url出现特殊字符处理

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