[Python] Problemi un con la "è" su Eric4 Editor

Alessandro Dentella sandro a e-den.it
Mer 18 Nov 2009 14:26:04 CET


On Wed, Nov 18, 2009 at 02:10:07PM +0100, Marco Beri wrote:
> 2009/11/18 Alessandro Dentella <sandro a 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:
> 
>       sandro a 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.

non credo sia così. dice "can't decode". Guarda che quello era un esempio
sbagliato apposta. Il file era coificato latin-1 ma avevo mantenuto la
scritta coding utf-8.


> # coding: utf-8
> print u'è'.encode('ascii', 'ignore')
> print u'è'.encode('ascii', 'xmlcharrefreplace')
> print u'è'.encode('ascii', 'replace')
> 
> Questo codice dovrebbe non fallire, confermi?

non fallisce ma quello che ottengo non può avere un accento...

>     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.

nota che a me la print a video non da problemi, solo Control-c Contro-c in
emacs lo da. La cosa mi urta perché uso molto emacs per prove di questo
tipo, anche se mai con lettere accentate.

> A parte che, da quando uso pdb di print a video (che prima ritenevo lo
> strumento principe del debug) ne faccio molte meno.

io ora non uso più pdb... uso ipdb che ti da in pdb tutto quello che ti da
ipython: completion, colori...

sandro
*:-)


Maggiori informazioni sulla lista Python