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

  1. fix server.
  2. if failing 1., need kind of hack:
    1. convert nsdata nsstring using latin1 character encoding
    2. convert nsstring nsdata using utf-8 character encoding
    3. parse json

Comments

Popular posts from this blog

c - Bitwise operation with (signed) enum value -

xslt - Unnest parent nodes by child node -

YouTubePlayerFragment cannot be cast to android.support.v4.app.Fragment -