[Python] Tkinter e Canvas.create_text
Manlio Perillo
manlio_perillo a libero.it
Mar 9 Feb 2010 12:17:16 CET
Daniele.zambelli ha scritto:
> Salve, ho un problema che non riesco a risolvere.
> La libreria a cui sto lavorando dā all'utente la possibilitā di creare degli
> oggetti testo in un canvas di Tkinter.
>
> Funziona tutto senza problemi se il testo non contiene lettere accentate, se
> invece la stringa da visualizzare contiene lettere accentate allora non viene
> visualizzato niente.
Ti stai scontrando con i problemi relativi all'encoding del testo.
Trovi diversi threads riguardo Unicode.
> Esempio:
>
>>>> Text(ip, 3, 3, 'lettera accentata: č')
>
> non appare niente.
>
> Se alla stringa antepongo il carattere "u" allora funziona correttamente:
>
>>>> Text(ip, 3, 4, u'lettera accentata: č')
>
> il testo viene visualizzato nella posizione corretta.
>
> La libreria inizia con la riga:
>
> # -*- coding: iso-8859-15 -*-
>
> A complicare la faccenda ho notato che su alcune macchine il mio programma
> soffre di questo problema, su altre no.
>
Dipende da come č impostato l'encoding di sistema.
Se usi stringhe normali, e non Unicode, sei in cerca di guai.
> [...]
> Io vorrei evitare di chiedere all'utente di anteporre la lettera "u" alle
> stringhe che contengono caratteri particolari. Come potrei fare?
>
Il prefisso `u` serve a creare una stringa Unicode.
Se non vuoi che i tuoi utenti debbano fare questo, ti conviene passare a
Python 3.x, in cui le stringhe sono Unicode di default.
> Grazie per l'attenzione.
>
Ciao Manlio
Maggiori informazioni sulla lista
Python