【发布时间】:2024-01-08 11:10:02
【问题描述】:
我正在处理这个问题。
我已经用 alamofire 提出了一个 json 请求,在我的 json 中有一些字符,如 u00b 等。这是希腊语。
虽然当我打印字典时,我看不到正确的字符串,如“αβγ”,但它们的 unicode 字符。
使用 alamofire 将我得到的所有文本统一编码为 utf-8 以便我可以打印出正确的字符的正确方法是什么??
以下代码是我提出的请求。
func getManPerf() {
Alamofire.request(baseurl, method: .get, parameters: ["action": "categories", "subaction": "getproducts", "category_id": "11", "limit": "0,30"]).responseJSON { (responseData) -> Void in
if((responseData.result.value) != nil) {
let result = responseData.result
print(result)
if let dict = result.value as? Dictionary<String, AnyObject>{
if let list = dict["products_in_category"] as? [Dictionary<String, AnyObject>] {
for obj in list {
let manPerfumes = Products(productDict: obj)
self.manPerfumeData.append(manPerfumes)
}
DispatchQueue.main.async{
self.manPerfumeCV.reloadData()
}
}
}
}
}
}
我必须对我的代码进行哪些更改才能为我带来正确的数据?谢谢!
【问题讨论】:
-
打印
dict而不是result。字典中的 UTF8 字符是正确的。 -
@vadian 是的,我还打印了
dict,我看到了u00b之类的字符。 -
这只是打印到控制台的表示。将字符串值分配给标签,然后您将看到正确的字符。
-
@vadian 问题是我得到了一些网址,我正在尝试下载图像。并且任何具有这些类型字符的链接都不会下载图像。
-
您需要对 URL 进行相应的转义/百分比编码。
URL(string:是不够的。
标签: ios json swift swift3 alamofire