UnicoDeenCodeerror: il codec "ASCII" non riesce a codificare i caratteri a causa di à © ã n dal database
-
21-12-2019 - |
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'])+"', "
. 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.