On Wed, Nov 18, 2009 at 08:12:18AM +0100, wipedisk wrote: > Il giorno Tue, 17 Nov 2009 22:03:19 +0100 > Marco Beri <marcob...@gmail.com> ha scritto: > > > Personalmente in tutti i miei file in cima metto sempre: > > > > # -*- coding: utf-8 -*- > > > > E cosi` dormo sonni (quasi) tranquilli. > > > > Ciao. > > Marco. > > quindi questa soluzione sarebbe valida per qualsiasi programma scritto > in Python?
No. 1. La codifica dichiarata deve corrispondere alla codifica realmente utilizzata il codice:: # coding: utf-8 print u'è' encodato latin1, produce questo errore: san...@bluff:/tmp$ python latin.py UnicodeDecodeError: 'utf8' codec can't decode byte 0xe8 in position 0: unexpected end of data la stessa lettera 'è' scritta in utf-8 ed in latin1 appare così:: san...@bluff:/tmp$ od -bc e-utf8.py 0000000 303 250 303 250 0000003 san...@bluff:/tmp$ od -bc e-latin1.py 0000000 350 350 0000002 2. la codifica dichiarata è limitata... al codice cui si riferisce, non a ciò che viene da file, template, database, getmessage. Poi ricorda che print u'è' e print 'è' sono cose diverse:: # coding: utf-8 print len('è'), 'è' print len(u'è'), u'è' produce: 2 è 1 è ciò detto il codice scritto sopra eseguito in un terminale gnome (utf-8) produce il codice riportato mentre in emacs mi da un errore di encoding perchè cerca di encodarlo in ascii nel buffer di uscita di emacs (che però è utf-8...) non sono ancora riuscito a capire come configurarlo per evitare l'errore. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.org SQLkit home page - PyGTK/python/sqlalchemy _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python