join con cadenas con caracteres con acentos

Marcos Sánchez Provencio rapto en arrakis.es
Vie Abr 27 13:46:04 CEST 2007


linea está codificada en iso-8859-15 o similares. Al empezar, tendrás
que decírselo a Python:

linea= unicode('1#\xc1\xc9\xcd\xd3\xda\xd1\xe1\xe9\xed\xf3
\xfa##PRUEBA(PRUEBA)#06##1#0#\n','iso-8859-15')

print linea #usando la codificación de mi sistema
1#ÁÉÍÓÚÑáéíóú##PRUEBA(PRUEBA)#06##1#0#

Para trabajar con caracteres no-ascii, hay que convertirlos a unicode
indicando la codificación del fichero de entrada cuanto antes.
Internamente, hay que trabajar en unicode siempre. Al final, para volcar
el resultado a un fichero o a la pantalla, hay que indicar la
codificación de nuevo. Existe una codificación predeterminada del
sistema que a veces funciona como queremos y a veces no tanto.

Saludos

El jue, 26-04-2007 a las 20:31 +0200, Dani Muñiz escribió:
> Lo que hago es tomar el texto de un fichero txt
> lo paso a la variable linea y despues:
> 
> linea= '1#\xc1\xc9\xcd\xd3\xda\xd1\xe1\xe9\xed\xf3\xfa##PRUEBA 
> (PRUEBA)#06##1#0#\n'
> 
> linea=linea.split("#")
> unif=""
> for linea2 in linea:
>   unif=unif+"#"+linea2
> unif=unif+"#"
> unif=unif+"#"+linea2
> 
> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 38-39: 
> invalid data
> Traceback (most recent call last):
>   File "C:\python\impPres\frmPrin.py", line 112, in OnBtRepararButton
>     unif=unif+"#"+linea2
> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 38-39: 
> invalid data
> 
> aquí falla por los parentesis pero no se por que? ni que puedo hacer 
> (esto es lo peor).
> 
> Tambien he probado esto (realmente esto es lo primero que probé y sin 
> acentos funciona)
> unif=string.join(linea,"#")
> 
> Pero al concatenarlo arroja este error
> 
> result=result+unif
> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 2-3: 
> invalid data
> 
> Alguna sugerencia?
> 
> Gracias.
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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