Hernan Martinez Foffani hernan en orgmf.com.ar
Jue Feb 28 16:15:40 CET 2002


> Creo que he descubierto un fallo, y me gustaría que me ayudárais a
> tipificarlo por si conviene notificarlo a los desarrolladores del python:
>
> Con un fichero de una línea tan simple como:
>
> print "ñ".isalpha()
>
> Si lo "importamos" desde el shell interactivo de python funciona bien
> (resultado 1). Si lo ejecutamos desde la línea de comandos va mal
> (resultado 0).

Entiendo que además de modificar el archivo site.py cambiando el encoding
y activando el bloque de código que le sigue (Ver FAQ 4.102), todas tus
constantes deberían incluir la u delante. Ej:

>>> print u"ñ".isalpha()
1
>>>

Eso cuenta para todas las cadenas de caracteres, incluso para aquellas
que no contengan caracteres no ascii, para que las funciones y metodos
de la biblioteca estándar retornen objetos 'unicode'. Ejemplo:

>>> "c a ñ a".split(" ")
['c', 'a', '\xf1', 'a']
>>> "c a ñ a".split(u" ")
[u'c', u'a', u'\xf1', u'a']
>>>

Yo estoy usando Python 2.2 sobre Windows 2000 y las diferencias entre
el entorno gráfico y el de comandos son debidas a los sets de caracteres
de windows.

En cuanto a que todas las cadenas de caracteres se consideren bajo una
determinada codificación Unicode, creo que eso se hará cuando se
implemente el PEP 263. http://python.sourceforge.net/peps/pep-0263.html



Saludos,
-Hernán





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