URL错误字符集?

时间:2018-02-14 18:02:50

标签: ios swift url web-applications

我尝试使用以下代码调用自定义网址:

let myurl = "https://myserver.com/call?a|b|c"
let converted = URL(string: myurl)
print(converted)

但我在converted中获得的结果只是"nil"

我很确定这是因为与URL()类相关的错误字符集

经过一些研究,我到目前为止所得到的是这个过时的Swift代码:

var myurl = "https://myserver.com/call?a|b|c"
var newurl = myurl.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
print(newurl)

但它似乎没有这样做。

如何使用(在我的情况下)Swift 4来避免“nil”结果?

1 个答案:

答案 0 :(得分:0)

自己找到解决方案:

let myurl = "https://myserver.com/call?a|b|c"
let converted = URL(string: myurl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)

print(converted!)


新功能称为addingPercentEncoding&我必须使用urlQueryAllowed属性来调用它。

urlQueryAllowed 字符集会将这样的字符添加到网址编码:“!*'();:@&=+$,/?%#[]|

Volià!