Pregunta

Tengo un campo para obtener de la base de datos que contiene una cadena con esta parte © Ã © N y al obtener esto, obtengo un error:

"UnicodencodeError: 'ASCII' CODEC no puede codificar caracteres en la posición 12-15: Ordinal no en el rango (128)"

He buscado este error, y otras personas estaban teniendo problemas debido a los unicos que comienzan a algo así como este u'\xa0, etc. Pero en mi caso, creo que se debe a caracteres especiales.No puedo hacer cambios en la base de datos, ya que no está bajo mi acceso.Solo puedo acceder a ella.

El código está aquí: (En realidad, su llamada a URL externa)

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)

Luego, utilizo la variable de resultados para obtener la cadena mencionada anteriormente y obtengo un error en esta línea:

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

¿Fue útil?

Solución

Debe encontrar la codificación para los que se usa para sus datos antes de que se inserte en la base de datos.Supongamos que es UTF-8 ya que es el más común.

En ese caso, querrá decodificar UTF-8 en lugar de decodificar ASCII.No proporcionó ningún código, así que asumo que tiene "data".decode().Intente "data".decode("utf-8"), y si sus datos se codificaron utilizando esta codificación, funcionará.

Otros consejos

para que me suene como la cuerda ya era unicode entonces.Así que elimine las funciones de str() y generacodidiccode en esa línea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top