Fork me on GitHub

Swift中URL特殊字符的处理

iOS开发过程中,我们常常会遇到URL编解码的问题,一般的情况下,我们是这么处理的

1
2
3
4
let str = "!*'();:@&=+$,/?%#[]MD5"
let encodeStr = str.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

print(encodeStr ?? "")

但是有些情况下,我们需要对某些特定的字符做编码处理,例如 “!*’();:” 等,我们就需要做如下处理:

1
2
3
4
let str = "!*'();:@&=+$,/?%#[]MD5"
let encodeStr = CFURLCreateStringByAddingPercentEscapes(nil, str as CFString, nil, "!*'();:@&=+$,/?%#[]" as CFString, CFStringBuiltInEncodings.UTF8.rawValue)

print(encodeStr ?? "")
------------- 本文结束感谢您的阅读 -------------