Il 02 dicembre 2009 18.32, Manlio Perillo <manlio_peri...@libero.it> ha scritto: > Massimo Capanni ha scritto: >> Salve, >> >> confesso che ho un po' di timore a postare questo thread, > > e perchè mai? > perche' e' un vero salto nel buio :) a volte mi piacerebbe avere uno di quei libri con la semantica di python (se esistono), come all'universita' li avevo per il pascal e capire che fine fa il codice che scrivi ...
[..] > Ci sono due informazioni in cui Python ha bisogno di conoscere > l'encoding usato. > > Il primo caso è quando, nel listato del programma, hai una string literal. > In questo caso l'encoding è necessario in fase di parsing del programma. > > Nel caso in cui l'interprete è eseguito in modalità interattiva, questa > informazione viene ricavata dal sistema operativo. > In modalità batch questa informazione deve essere dichiarata dal > programmatore nel file che contiene il programma. > e infatti cosi' sembra funzionare: (ho impostato notepad++ su utf-8 senza BOM) ---------------------------------------------- # -*- coding: UTF-8 -*- file = open("prova.txt", "w") x = 'àòàòàòàò' file.write(x) file.close() ---------------------------------------------- > Il secondo caso è quando converti una stringa normale in Unicode. > >>>> byte_string = 'àè' >>>> s = unicode(byte_string) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: > ordinal not in range(128) > >>>> import sys >>>> reload(sys) perche' reload(sys)? > <module 'sys' (built-in)> >>>> sys.setdefaultencoding('utf-8') >>>> s = unicode(byte_string) >>>> > > Nel mio caso, sono su Linux ed ho il locale impostato a `it_IT.utf8`. > sul mio Wxp invece: ---------------------------------------------- >>> import sys >>> reload(sys) >>> sys.setdefaultencoding('Windows-1252') # codifica di windows >>> x = 'ò' >>> s = unicode(x) >>> s u'\u2022' dal quale: >>> print s.encode() ò ok, effettivamente adesso le cose cominciano leggermente a tornare :) Concludo quindi il mio post con Unicode: conviene trattare tutte le stringhe come Unicode per evitare problemi di portabilita'? > > Ciao Manlio grazie infinite :) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python