swift - JSON request with accents/latin characters -
i'm making request url.
one of teams has latin character Ñ appears making json nil , result no data displayed in table exporting data. i've done research , believe need encode nsisolatin1stringencoding.
i using swiftyjson parse json.
let cuartourl = nsurl(string: cuartourlstring) //initializes request let request = nsurlrequest(url: cuartourl!) nsurlconnection.sendasynchronousrequest(request, queue: nsoperationqueue.currentqueue()) { response, jsondatarequest4, error in if jsondatarequest4 != nil { let datarequest4 = jsondatarequest4 //println(nsstring(data:datarequest4, encoding: nsutf8stringencoding)) //takes data, saves json let cuartojson = json(data: jsondatarequest4) //checks see contents != nil, meaning json file found if cuartojson != nil { equiposlist.removeall(keepcapacity: false) //counts number of teams numerodeequipos = cuartojson["lista-equipos"].count println(numerodeequipos) //saves each variable , appends array var index = 0; index < numerodeequipos;++index { var equipoid = int(cuartojson["lista-equipos"][index]["equipoid"].number!) var nomequipo = cuartojson["lista-equipos"][index]["nomequipo"].string var nomgrupo = cuartojson["lista-equipos"][index]["nomgrupo"].string var equiposnuevo = listaequipos(equipoid: equipoid, nomequipo: nomequipo!, nomgrupo: nomgrupo!) equiposlist.append(equiposnuevo) self.tableview.reloaddata() } //loadingactivity.hideloadingactivity(success: true, animated: false) //reloads data once json complete self.tableview.reloaddata() } else { //loadingactivity.hideloadingactivity(success: false, animated: true) println("nil json") } }
json binary format , has no concept of text encoding (as can deduced mime type starting application/
rather text/
. json encoded unicode (utf-8, utf-16 or utf-32) clear the specification (section 8.1).
it may server sends invalid json (incorrectly coded latin-1 make bad utf-8 parser). remedy be
- fix server.
- if failing 1., need kind of hack:
- convert nsdata nsstring using latin1 character encoding
- convert nsstring nsdata using utf-8 character encoding
- parse json
Comments
Post a Comment