在 iOS
原字符串为:
CFURLCreateStringByAddingPercentEscapes方法为:
stringByAddingPercentEncodingWithAllowedCharacters方法为:
之后获得的字符串为一致的。
stringByAddingPercentEncodingWithAllowedCharacters
2015-12-12 16:10
浏览(164)
stringByAddingPercentEncodingWithAllowedCharacters,有需要的朋友可以参考下。
(1) 网络访问请求:中文空格字符编码/解码 stringByAddingPercentEscapesUsingEncoding(只对 `#%^{}[]|\"<> 加空格共14个字符编码,不包括”&?”等符号), ios9将淘汰,建议用stringByAddingPercentEncodingWithAllowedCharacters方法 URLFragmentAllowedCharacterSet "#%<>[\]^`{|} URLHostAllowedCharacterSet "#%/<>?@\^`{|} URLPasswordAllowedCharacterSet "#%/:<>?@[\]^`{|} URLPathAllowedCharacterSet "#%;<>?[\]^`{|} URLQueryAllowedCharacterSet "#%<>[\]^`{|} URLUserAllowedCharacterSet "#%/:<>?@[\]^` (2)网络访问请求:中文空格字符解码 stringByRemovingPercentEncoding ---- xcode7可能会提示要将stringByAddingPercentEscapesUsingEncoding替换成此方法,要根据是否是解码来区分 */ //代替stringByAddingPercentEscapesUsingEncoding let customAllowedSet = NSCharacterSet(charactersInString:"`#%^{}\"[]|\\<> ").invertedSet
NSString * resourcePath = @"https://www.xiaocaobank.com"; NSString *encodePath ; if (!IOS7_OR_LATER) { encodePath = [resourcePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; }else{ encodePath = [resourcePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}\"[]|\\<> "].invertedSet]; }