ios - 如何正确编码 URL 字符串

标签 ios swift encoding ios9 nsurlrequest

我已经尝试了这里找到的很多示例,但没有一个有效...网址始终为零..

这里的字符串: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/

相关文章:

iphone - 如何显示 Game Center 成就通知

ios - 存储数百张图像

ios - 如何将带有可变变量名的 JSON 转换为 swift 对象?

ios - 我如何使用 Fabric 的/Crashlytics 的代码来检查设备是否越狱?

arrays - Swift Serpent 使用顶级数组生成 JSON

swift - 将 UIKit 转换为 SceneKit

php - 非英文字符在我的 PHP 页面上显示为问号 - 在数据库中显示正常

ios - 星期几多选 UI

video - 多重描述编码

java - 将输入流保存到 ByteArray