PostgreSQL - Charset da UTF-8 a LATIN1

1 risposta [Ultimo messaggio]
Ritratto di mrpeter
mrpeter
(Junior)
Offline
Junior
Iscritto: 10/08/2008
Messaggi: 18

Ciao a tutti,

Descrivo qui sotto il mio problema:
Ho un db in postgres su un server mandriva.(2008.1)

Dovendo fare della pulizia dei dati mi sono reso conto
che ho dei caratteri (parole accentate, c spagnola ecct..) che non sono accettati dal mio db e mi vengono encodati con strani simboli. Sono riuscito entrando dentro nel db a passargli dei caratteri non accettati da UTF-8 con il comando

<br /><br />psql db<br />\encoding latin1<br /><br />query -&gt; ok<br /><br />

Non riesco a fare la medesima cosa richiamando il comando:

<br /><br />psql db -c &quot;query&quot;<br /><br />

Perchè perde il tipo di encoding indicato in precedenza. Per settarlo definitavamente sono andato sul sito di postgres (http://www.postgresql.org/docs/8.3/static/multibyte.html )ho trovato la sezione nella quale veniva spiegato come cambiare il charset del database. Purtroppo ho notato che c'e' una restrizione dovuta LC_CTYPE che nella mia macchina è settato richiamando il comando "locale" con UTF-8. Ora vi chiedo a voi come posso cambiare i settaggi all'interno di locale o risolvere questo problema?

Grazie e spero di essere stato chiaro nella spiegazione.

Attendo vostri consigli.

P.

Ritratto di tom2004
tom2004 (non verificato)
()

Quote:

mrpeter ha scritto:
[...]
Purtroppo ho notato che c'e' una restrizione dovuta LC_CTYPE che nella mia macchina è settato richiamando il comando "locale" con UTF-8. Ora vi chiedo a voi come posso cambiare i settaggi all'interno di locale o risolvere questo problema?

non ho competenza del tuo problema ma ne ho un po' di locale:

i settaggi di locale sono delle variabili di ambiente,
se digiti
env | grep LC
li vedi scorrere.

se ho capito bene vuoi cambiare qualcuno di quei settaggi, ma non ho capito se vuoi intervenire solo sull'istanza del DB o su un utente, cmq per un utente puoi intervenire dal centro di controllo, c'e' una form per i settaggi internazionali (qualla dalla quale si sceglie il simbolo per la moneta, per la virgola decimale etc etc.).

se vuoi intervenire solo per il daemone del DB ti basta settare la variabile nello script che lancia il db.

se hai trovato altre soluzioni facci sapere,
servira' ai posteri Smile