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

miguel zamora m. mzmprog en gmail.com
Dom Feb 27 21:36:30 CET 2011


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/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110227/59a14552/attachment.html>


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