...">
美文网首页
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