/ / Caracteres Unicode en cadena JSON con swift 3 y Alamofire - ios, json, swift, swift3, alamofire

Caracteres Unicode en cadena JSON con swift 3 y Alamofire - ios, json, swift, swift3, alamofire

Estoy lidiando con este problema aquí. He hecho una solicitud json con alamofire y dentro de mi json hay algunos caracteres como u00b etc. Que es el idioma griego. Aunque cuando imprimo el diccionario no puedo ver la cadena correcta como "αβγ" pero sus caracteres unicode.

¿Cuál es la forma correcta con alamofire para unicode todo el texto que llego a utf-8 para poder imprimir los caracteres adecuados?

El siguiente código es la solicitud que hago.

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()

}


}
}

}
}
}

¿Qué cambios debo hacer en mi código para que pueda traerme los datos correctos? ¡Gracias!

Respuestas

1 para la respuesta № 1

Formatee la cadena con utf-8 antes de agregar;)

let manPerfumesUTF = String(UTF8String: manPerfumes.cStringUsingEncoding(NSUTF8StringEncoding))

Ejemplo en parques infantiles:

class Products {

let _name : String

init(productDict : [String : String]) {

self._name = productDict["name"] ?? "error"
}

}

let productDict = ["name" : "Hugo Boss"]
let productDictWithUTF8 = ["name" : "u{03b2}u{03b5}u{03b5}u{03c1}"]

let hugoBoss = Products(productDict: productDict)
let greekParfume = Products(productDict: productDictWithUTF8)
print(hugoBoss._name)      // Hugo Boss
print(greekParfume._name)  // βεερ