latin-1 en tkinter
Chema Cortes
pych3m4 en gmail.com
Mar Jul 31 12:49:43 CEST 2007
El 31/07/07, ruben gomez <ruido_electronico en yahoo.es> escribió:
> He visto algunos post en esta lista al respecto, pero no acabo de aclararme. Disculpas si me repito.
Aquí estamos para lo que haga falta.
> El problema es con los caracteres ñ, Ç, etc. (los de latin-1 o cp1252). Internamente no dan problemas; por ejemplo, tengo un entry que escribe en un text y puedo escribirlo con éstos (supongo que es porque el archivo va con la cabecera típica # -*- coding: latin-1 -*-.) Sin embargo, en el entry hay una función que le dice al programa que si el usuario ha tecleado, por ejemplo: mañana, haga una acción; pues bien, en este momento me imprime el siguiente warning:
>
> Warning (from warnings module):
>
> File: "el archivo python"
>
> if text == 'mañana'
>
> UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
>
> ¿Alguna idea? Gracias por adelantado
Que yo sepa, Tk usa siempre unicode. El comentario de codificación (#
-*- coding: latin-1 -*-) sólo influye en las inicialización de cadenas
unicode.
En tu caso:
if text == 'mañana'
Es una comparación entre una cadena unicode (text) y una cadena normal
('mañana'). Tienes que hacer que la comparación sea entre cadenas
unicode:
if text == u'mañana'
Gracias al comentario de codificación, python sabe que tiene que crear
la cadena unicode a partir de la cadena 'mañana' codificada en latin1.
Más información sobre la lista de distribución Python-es