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

Claudio Freire klaussfreire en gmail.com
Jue Mar 14 13:37:43 ART 2013


2013/3/14 Santiago Paleka <santiagopaleka en gmail.com>:
>> > Y yo necesito que sean los valores de la tabla ASCII de 8 bits, o sea:
>> > á = \xe1
>> > é = \xe9
>> > í =  \xed
>> > ó = \xf3
>> > ú = \xfa
>>
>> ASCII son 7 bits.
>>
>> Hay extensiones al ASCII, entonces necesitás especificar cual
>> extensión querés. Latin 1 creo que te srive:
>>
>> In [1]: u"á".encode("latin1")
>> Out[1]: '\xe1'

<snip>

>
> Muchas Gracias Roberto y Facundo,
> Busqué que otras opciones tenía para pasarle como parámetro a encode() pero
> no había visto latin1
> Con esto tengo lo que quería,
> Y si Roberto, si explota veo que hago, pero como los datos los lee desde un
> wx.TextCtrl, restrinjo desde ahí que se puede ingresar.

Ejemplo que explota:

>>> print u'€'.encode('latin1')>>> print u'€'.encode('latin1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u20ac'
in position 0: ordinal not in range(256)

Por suerte, se puede decirle al encode que ignore eso:

>>> print u'€'.encode('latin1', 'ignore')

>>> print u'€34'.encode('latin1', 'ignore')
34
>>>

O que los marque:

>>> print u'€34'.encode('latin1', 'replace')
?34

No sé si te sirve en tu caso.



More information about the pyar mailing list