[pyar] Unicode, str y archivos binarios...

fisa fisadev en gmail.com
Jue Mar 14 12:33:15 ART 2013


El día 14 de marzo de 2013 12:28, Santiago Paleka
<santiagopaleka en gmail.com> escribió:
> El 14 de marzo de 2013 12:21, Roberto Alsina <ralsina en netmanagers.com.ar>
> escribió:
>
>> On 14/03/13 12:19, Santiago Paleka wrote:
>> >
>> > El problema empieza cuando quiero agregar una cadena unicode al string
>> > "binario" y la misma tiene acentos, me dice que el valor está fuera de
>> > rango:
>> > UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position
>> > 0: ordinal not in range(128)
>>
>> Tenés que convertir el unicode a una representación en bytes. Por
>> ejemplo, u"áéíóú".encode('utf8')
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
> Roberto,
>
> Gracias por la respuesta,
> Ya había probado eso, pero de esa manera los caracteres son convertiros en
> dos bytes cada uno
> á = \xc3\xa1
> é= \xc3\xa9
> í=\xc3\xad
> ó = \xc3\xb3
> ú = \xc3\xba
>
> Y yo necesito que sean los valores de la tabla ASCII de 8 bits, o sea:
> á = \xe1
> é = \xe9
> í =  \xed
> ó = \xf3
> ú = \xfa
>

Ojo che que ascii no incluye letras con acentos. Y eso es justamente
lo que te dice el error: que no puede transformar esa letra acentuada
a binario, porque precisamente ascii no define ninguna representación
binaria para esos caracteres.

Como bien te dijo roberto, podés usar iso8859-1, que es otro encoding
que sí incluye letras acentuadas. Pero utf-8 es mejor porque abarca
incluso más caracteres que los de iso8859-1.

--
fisa  -  Juan Pedro Fisanotti



More information about the pyar mailing list