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]];

 

 

收藏 打印