[Python] Encoding e setdefaultencoding

Lawrence Oluyede l.oluyede a gmail.com
Mar 13 Nov 2007 14:34:45 CET


> Ciao a tutti,
> volevo sapere se vi è un motivo particolare per cui la codifica di default
> di python è settata ad ascii.

Perche` i file sorgenti son 99% si ragionava in ASCII

> E' da tempo che riscontravavamo problemi con lettere accentate quando si
> leggevano file di testo o dati dal db e dopo svariate ricerche in rete
> abbiamo scoperto che è possibile settare l'encoding di default nel file
> site.py (e scoprirlo non è stato semplice)

Attenzione, son 2 cose diverse. I file con caratteri accentati
all'interno delle stringhe possono essere scritti precisando
un encoding all'interno del file. Cio` che invece entra ed esce da una
applicazione puo` essere in 24 encoding diversi
e tu devi saperlo a priori.

Cambiare l'encoding di default non e` la soluzione piu` corretta. La
soluzione corretta e` sapere l'encoding del testo
in ingresso e interpretarlo di conseguenza.

> La cosa che non capiamo è perché sembrerebbe "nascosta" questa
> possibilità... nel file site.py si legge di cambiare encoding "se si stanno
> facendo esperimenti" e la funzione di sys.setdefaultencoding () viene
> cancellata dallo stesso file site.py come se non si volesse far cambiare
> l'encoding all'utilizzatore.

Esatto.. Il perche` e` spiegato da Fredrik Lundh qui:
http://blog.ianbicking.org/illusive-setdefaultencoding-comment-2.html

-- 
Lawrence, oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair


Maggiori informazioni sulla lista Python