[Gfoss] postgresql e l'utf8... una lotta

Vito Meuli v.meuli a tecnologieavanzate.it
Mer 7 Ott 2009 11:42:15 CEST


Ciao!
Non sono un guru di Postgres, ti dico come l'ho risolto io.
Il problema è che il cluster di Postgres, che è la megastruttura di cartelle e 
file che lui usa per memorizzare i dati sul disco, il cluster è stato creato 
con un certo locale, UTF8 (ora i singoli termini non me li ricordo in modo 
preciso). Lo crea Ubuntu all'installazione del pacchetto.
Con quel cluster non hai chance: puoi solo creare database UTF8.

Se vuoi avere la possibilità di creare database LATIN1, LATIN9, o tutti quelli 
che vuoi, scegliendo al momento di creare il database, allora non c'è 
alternativa che abbandonare quel cluster e crearne un altro (con qualcosa del 
tipo:
/usr/lib/postgresql/8.3/bin/initdb --locale=C -D /usr/local/pgsql/data/

Una volta fatto questo, puoi scegliere di volta in volta, invece con --
locale=...UTF8... (non mi ricordo com'è esattamente) non hai chance, solo UTF8 
per tutti.

Il manuale ha un paio di pagine esaustive sull'argomento: 
http://www.postgresql.org/docs/8.3/static/multibyte.html

I miei due centesimi.

Ciao,
Vito Meuli

On Tuesday 06 October 2009 20:30:07 G. Allegri wrote:
> Ciao a tutti,
> è tanto che non faccio una domanda, ma stavolta avrei proprio bisogno di un
> lume su Postgresql...
> Era tanto che non ne mettevo su uno da zero, ed ho visto che la gestione
> della localizzazione e dei charset si è fatta molto stringente dalla
> versione 8.3. Adesso il charset del db dev'essere corrispondente al locale
> della macchina, altrimenti createdb ti risponde picche. Ho trovato conferme
> sulla ml di PG.
>
> Dunque, mi hanno passato una Ubuntu 9.04 su cui mettere in piedi un server.
> 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).
> Mi sono preoccupato allora di settare il "client_encoding='latin1' " prima
> di lanciare l'.sql da pgsql.
> NIENTE DA FARE.
> PG non ne vuole sapere di digerire quegli accenti, e non prova nemmeno a
> cambiarli. Semplicemente si piglia le righe che gli piacciono e il resto me
> lo rende indietro senza batter ciglio.
>
> Domanda a tutti i PGisti di gfoss: che devo fare?!!! Esperienze simili da
> condividere? Immagino proprio di sì... tra l'altro tra i dataset da
> caricare ci sono glli shape istat2008, che molti di voi avranno già
> maneggiato...
>
> In attesa di eventuali, confortevoli, risposte
> vi saluto.
> firmato: un uomo risucchiato da un elefante...



Maggiori informazioni sulla lista Gfoss