2009/11/18 Alessandro Dentella <san...@e-den.it> 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 >
Quello è dovuto al fatto che, tentando di stampare a video prova a fare l'encoding in ascii. # coding: utf-8 print u'è'.encode('ascii', 'ignore') print u'è'.encode('ascii', 'xmlcharrefreplace') print u'è'.encode('ascii', 'replace') Questo codice dovrebbe non fallire, confermi? 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. > Mi sono abituato, quando devo fare delle print a video, ad usare una di quelle print. A parte che, da quando uso pdb di print a video (che prima ritenevo lo strumento principe del debug) ne faccio molte meno. Ciao. Marco. -- http://ThinkCode.TV - Screencast e videocorsi di programmazione http://stacktrace.it - Aperiodico di resistenza informatica http://beri.it - Blog di una testina di vitello
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python