我已经尝试了这里找到的很多示例,但没有一个有效...网址始终为零..
这里的字符串:http://www.tst.com.br/?Nr=OR(product.productType.displayName:Acess%C3%B3rios,product.productType.displayName:Outros%20Produtos)&Ns=sku.sortPriority|0&mi=hm_ger__mntop__FUT-outros_&cm_re=mntop-_-ger_-_-_FUT-outros_____&fc=menu&test=test
let urlSet = "http://www.tst.com.br/?Nr=OR(product.productType.displayName:Acess%C3%B3rios,product.productType.displayName:Outros%20Produtos)&Ns=sku.sortPriority|0&mi=hm_ger__mntop__FUT-outros_&cm_re=mntop-_-ger_-_-_FUT-outros_____&fc=menu&test=test"
guard let url = NSURL(string: urlSet ?? "") else {
return
}
我应该解码然后再次编码吗?
已经尝试过这个 Solution ,但是不起作用,NSURL初始化总是nil
最佳答案
这段代码解决了我的问题:
extension String {
func encodeString() -> String {
let URLCombinedCharacterSet = NSMutableCharacterSet()
URLCombinedCharacterSet.formUnionWithCharacterSet(.URLQueryAllowedCharacterSet())
URLCombinedCharacterSet.addCharactersInString("@#&=*+-_.,:!?()/~'%")
let urlEncoded = self.stringByAddingPercentEncodingWithAllowedCharacters(URLCombinedCharacterSet)
return urlEncoded ?? self
}
}
关于ios - 如何正确编码 URL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868522/