如何在 Swift for iOS 中正确编码 URL(URL encode)?
大家好!我是 Swift 和 iOS 开发的新手,遇到了 URL 编码的问题。我需要向一个 API 发送 GET 请求,该 API 接受查询字符串中的参数。其中一个参数是包含西里尔字母和特殊字符的字符串(例如 "Привет, мир! & тест")。
我尝试使用 `addingPercentEncoding(withAllowedCharacters:)`,但没成功。以下是我写的代码:
```swift
let baseURL = "https://api.example.com/search"
let query = "Привет, мир! & тест"
let encodedQuery = query.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let fullURL = "\(baseURL)?q=\(encodedQuery)"
print(fullURL)
```
但在控制台中,我看到空格变成了 `%20`,而 `&` 符号保持不变。因此服务器错误地解析了请求,我收到了错误。文档中说 `urlQueryAllowed` 允许 `&` 符号,但它会分隔参数!如何正确编码整个 URL,使所有特殊字符都被转义?