如何解码 Swift 中 NSURL 中的特殊字符?

How to decode special characters in an NSURL in Swift?

我有一个字符串:<api address>/<parameters>?fmt=json
当我从字符串创建一个 NSURL 对象时,URL 是:<api address>/<parameters>%3Ffmt=json

当我用这个 URL 发送请求时(使用 NSURLSession),但是,它被拒绝访问,因为 API 想要 ?并且不接受 %3F。如何将 URL 解码为 ? return,以便 API 接受请求?

更新

NSURL施工

let urlRequestString = "<api url>?fmt=json&api_key=" + <key> let apiRequestURL = NSURL(fileURLWithPath: urlRequestString)

您使用了错误的初始值设定项,这导致了错误的结果。 NSURL(fileURLWithPath: urlRequestString) 用于创建 file:// URL。它将您的 URL 转换为适合文件系统的格式。它专为文件使用而设计,因此您不应在此处使用它。

如果您将初始值设定项更改为 NSURL(string: urlRequestString),那么您的 URL 应该没问题。