[Python-es] Error codificación carácteres

Andrey Antoukh andsux en gmail.com
Dom Feb 27 21:42:27 CET 2011


Bueno, eso de decir que es un problema, no lo diría tanto. Trabajo a
diario con datos con acentos y no tengo ningún inconveniente, solo uno
tiene que asegurarse de trabajar siempre con unicode...

Es mas, el problema de los acentos no es de python, si no de la gente
que no usa unicode.

Como bieno se dijo en la primera respuesta, mirate la codificacion de
tu script python... la otra opcion es mirar la codificacion de
caracteres de tus variables y donde lo insertas, son muchas las
posibilidades...

Un saludo.
Andrei.

El día 27 de febrero de 2011 21:36, miguel zamora m.
<mzmprog en gmail.com> escribió:
> Estimado
>
> Tu problema es la codificacion de los datos en la base de datos a python no
> le gustan los caracteres Ñ ç o acentos etc.
>
> ejemplo de funcion datos que tienen acento y los cambia por otro sin acento
> ese es mi caso
>
> asi ve python los caracteres con acentos o que esten fuera de la tabla ascii
> 128
> por eso tu error
>
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in
> position 33: ordinal not in range(128)
>
> utiliza para codificar
> encode('utf-8')
> y
> decode('utf-8')
>
> \xc9 =  É
>
> def eliminarAcentos(cadena):
>
>     d = {    '\xc1':'A',
>         '\xc9':'E',
>         '\xcd':'I',
>         '\xd3':'O',
>         '\xda':'U',
>         '\xdc':'U',
>         '\xd1':'N',
>         '\xc7':'C',
>         '\xed':'i',
>         '\xf3':'o',
>         '\xf1':'n',
>         '\xe7':'c',
>         '\xba':'',
>         '\xb0':'',
>         '\x3a':'',
>         '\xe1':'a',
>         '\xe2':'a',
>         '\xe3':'a',
>         '\xe4':'a',
>         '\xe5':'a',
>         '\xe8':'e',
>         '\xe9':'e',
>         '\xea':'e',
>         '\xeb':'e',
>         '\xec':'i',
>         '\xed':'i',
>         '\xee':'i',
>         '\xef':'i',
>         '\xf2':'o',
>         '\xf3':'o',
>         '\xf4':'o',
>         '\xf5':'o',
>         '\xf0':'o',
>         '\xf9':'u',
>         '\xfa':'u',
>         '\xfb':'u',
>         '\xfc':'u',
>         '\xe5':'a'
> }
>
>     nueva_cadena = cadena
>     for c in d.keys():
>         nueva_cadena = nueva_cadena.replace(c,d[c])
>
>     auxiliar = nueva_cadena.encode('utf-8')
>     return nueva_cadena
>
> espero te sirva de algo el ejemplo son un problema los acentos en python asi
> que busca mas informacion sobre estos
>
>
>
>
> El 27 de febrero de 2011 15:44, Jesús Genicio <jgenicio en gmail.com> escribió:
>>
>> Hola a tod en s:
>>
>> Llevo tiempo buscando la solución y no soy capaz. El problema es este:
>>
>> BME.MC
>> Bolsas y Mercados Españoles
>> Traceback (most recent call last):
>>  File "extraer_datos.py", line 80, in <module>
>>    archivo_configuracion.write("set title '%s (%s)'\n"
>> %( Nombre_Valor,id,))
>> UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in
>> position 33: ordinal not in range(128)
>>
>> Los datos los saco de una base de datos y tiene el formato Español, con
>> eñes y acentos, etc..
>>
>> Pero al ejecutar este script, me tira el error y separa. ¿Qué hago mal.?
>>
>>
>> Gracias por vuestra ayuda.
>>
>>
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>



-- 
http://twitter.com/andsux
http://www.niwi.be
****
http://www.freebsd.org/
http://www.postgresql.org/
http://www.python.org/
http://www.djangoproject.com/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"


Más información sobre la lista de distribución Python-es