[Gfoss] postgresql e l'utf8... una lotta
Niccolo Rigacci
niccolo a faunalia.it
Mar 6 Ott 2009 21:18:01 CEST
On Tue, Oct 06, 2009 at 08:30:07PM +0200, G. Allegri wrote:
>
> La macchina è localizzata it_IT.UTF-8, e
> postgresql di default crea i db in UTF8. Adesso io devo
> inserire un po' di dati in Postgis e che, essendo toponimi
> italiani, contengono un sacco di accenti. Vado di shp2pgsql e
> 'file -bi' mi conferma che l'encoding è iso-8859-1 (ovvero
> latin1, per PG).
Ti consiglio di fare "La Cosa Giusta"(tm), cioè usa sempre e
comunque UTF-8: imposta il locale della tua macchina su
it_UT a UTF-8 e crea il database in UTF8.
Se poi devi caricare dei dati che sono iso-8859-1 li converti
prima con iconv con qualcosa del genere:
cat pippo.sql | iconv -f ISO-8859-1 -t UTF-8 > pippo2.sql
Controlla le opzioni di iconv, perché può comportarsi in diversi
modi: fermarsi in caso di errore, rimuovere i caratteri errati,
ecc.
Tieni presente che spesso i dati di origine (per esempio quelli
ISTAT) hanno encoding misti: cioè le lettere accentate a volte
sono in latin altre volte in utf-8. Il che è non depone a favore
della professionalità di chi ha curato il dato e ti costringe ad
un lavoro di pre-processing manuale.
--
Niccolo Rigacci
Firenze - Italy
Maggiori informazioni sulla lista
Gfoss