Domanda

Ho un campo da ottenere dal database che contiene una stringa con questa parte à © n e mentre viene visualizzato questo errore:

.

"UnicoDeenCodeError: il codec" ASCII "non riesce a codificare i caratteri in posizione 12-15: ordinale non nel range (128)"

Ho cercato questo errore e altre persone stavano avendo problemi a causa di unicodi che iniziano qualcosa come questo u'\xa0, ecc. Ma nel mio caso, penso che sia dovuto a personaggi speciali.Non posso fare modifiche nel database come non è sotto il mio accesso.Posso semplicemente accedervi.

Il codice è qui: (in realtà la sua chiamata all'URL esterno)

req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
res = urllib2.urlopen(req,timeout = 50)         #50 secs timeout
clientid = res.read()
result = json.loads(clientid)
.

Quindi uso la variabile dei risultati per ottenere la stringa sopra menzionata e ottengo errori su questa riga:

updateString +="name='"+str(result['product_name'])+"', "
.

È stato utile?

Soluzione

È necessario trovare la codifica per il quale viene utilizzato per i tuoi dati prima che sia inserito nel database.Assumiamo che sia UTF-8 poiché è il più comune.

In tal caso vorrai decodificare UTF-8 invece del decodifica ASCII.Non hai fornito alcun codice, quindi suppongo che tu abbia "data".decode().Prova "data".decode("utf-8") e se i tuoi dati sono stati codificati utilizzando questa codifica, funzionerà.

Altri suggerimenti

Quindi mi suona come la stringa già era unicode allora.Quindi rimuovere le funzioni str() e unicode su quella riga.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top