[pyar] Pelando con unicode

Roberto Alsina ralsina en netmanagers.com.ar
Lun Sep 26 16:51:49 ART 2011


On 9/26/2011 4:32 PM, Daniel wrote:
> El día 26 de septiembre de 2011 12:53, Daniel Moisset
> <dmoisset en machinalis.com>  escribió:
>>
>> 2011/9/26 Daniel<dmlistapython en gmail.com>
>>> El día 26 de septiembre de 2011 12:28, Roberto Alsina
>>> <ralsina en netmanagers.com.ar>  escribió:
>>>> On 9/26/2011 12:23 PM, Daniel wrote:
>>>>> Tengo esta porción de código:
>>>>>
>>>>> combinado = codecs.open("combinado.txt", "w", "UTF-8")
>>>>> combinado.write(texto_combinado.encode("UTF-8"))
>>>> Cuando usas codecs, le pasas los objetos unicode directamente, sin hacer
>>>> encode:
>>>>
>>>> combinado.write(texto_combinado)
>>> Supuse eso en primera instancia, pero no funcionó.
>>> este es el fragmento problemático
>>>
>>> http://pastebin.com/nkhVkU4i
>>>
>>> sin el unicode(texto_combinado) hace lo mismo:
>>> El programa en depuración ha lanzado la excepción unhandled
>>> UnicodeDecodeError
>>> "'utf8' codec can't decode byte 0xe9 in position 262: invalid continuation
>>> byte"
>>> Archivo: /usr/lib64/python2.7/encodings/utf_8.py, Línea: 16
>>>
>>> Error completo
>>>
>> Lo que te dijimos que hagas es:
>>
>> combinado.write(texto_combinado)
>>
>> Lo que hace tu codigo es:
>>
>> combinado.write(unicode(texto_combinado))
>> Y en la diferencia esta el problema, que es el mismo que en el primer email
>> del thread: estas tratando de codificar dos veces.
>>
>> D.
> No daniel, no es eso, porque la primera prueba fue sin el unicode
> en un post anterior me dijeron que me asegure de que sea unicode
> y no se me ocurrió otra manera de hacerlo.

La mejor manera de saber si algo es unicode es:

if not isinstace(algo, unicode):
      print "UY NO ERA!"

  :-)




More information about the pyar mailing list