我们可能会遇到访问URL资源时地址包含中文字符串或特殊符号等情况,这个时候如果不特殊处理会有异常情况,所以必须要对URL初始化之前进行编码。
下面简单梳理下Swift3-Swift5的使用方法:
- Swift3
编码
joinConfString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
解码
joinConfString.removingPercentEncoding
- Swift4
编码
joinConfString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
解码
joinConfString.removingPercentEncoding
- Swift5
var joinConfString = "#Hello, @今日头条.com!"
if let encodedString = joinConfString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
print("编码结果")
print(encodedString)
// 解码
if let decodedString = encodedString.removingPercentEncoding {
print("解码结果")
print(decodedString)
}else {
print("解码失败了!")
}
}else {
print("编码失败了!")
}
运行结果:
编码结果
%23Hello,%20@%E4%BB%8A%E6%97%A5%E5%A4%B4%E6%9D%A1.com!
解码结果
#Hello, @今日头条.com!