R: problema Cinese in DB UTF8

From: "ciifrancesco(at)tiscali(dot)it" <ciifrancesco(at)tiscali(dot)it>
To: <pgsql-it-generale(at)postgresql(dot)org>
Subject: R: problema Cinese in DB UTF8
Date: 2013-08-06 12:30:48
Message-ID: 10318615.61451375792248887.JavaMail.defaultUser@defaultHost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-it-generale

Rileggendo il Suo messaggio, ho notato che non ho completato la richiesta, non avendo incluso come la stringa viene creata. Ecco il percorso algoritmico completo:

char stringaUTF8[39];//conterrà cinese
//leggo stringaUTF8 da file...

snprintf( tmp, MAX_SQL_QUERY_LENGTH, "SELECT campo \
FROM tabella WHERE \
datoUTF8 = '%s' AND sezione = '%s';",
stringaUTF8, sezione);

sqlQuery = UnicodeString(tmp);
EseguiIstruzioneSQL(sqlQuery); //funz. nel messaggio precedente, v. sotto

Distinti saluti,
Francesco

----Messaggio originale----
Da: ciifrancesco(at)tiscali(dot)it
Data: 05/08/2013 13.09
A: <pgsql-it-generale(at)postgresql(dot)org>
Ogg: [pgsql-it-generale] problema Cinese in DB UTF8

[riscrivo perché per sbaglio non l'ho inviata alla lista]

Gentile Dr. Gianni Ciolli,

ringrazio per la risposta, e mi scuso per il ritardo con cui riscrivo
(dovuto alla impossibilità di accedere al codice in questi giorni).

Ricostruisco la funzione che esegue la query eliminando come al solito
il codice di controllo. Rispetto alla volta scorsa ho aggiunto le righe
che sono marcate con T1 e T2, ma senza successo.

Tali righe le ho trovate in questo interessantissimo programma basato
sul giapponese

http://winpg.jp/~saito/PGSQL_SJIS

che purtroppo ancora non mi ha aiutato a risolvere. Una cosa
interessante sembrerebbe l'uso di wchar che ancora devo implementare.
Intanto dò la funzione come è adesso:

bool EseguiIstruzioneSQL(const char *sqlQuery)
{
m_dbHandle =
PQconnectdb(conninfo); //puntatore a PGconn
//m_dbHandle->set_client_encoding( "UTF8" ); // T1 non funziona
PQsetClientEncoding(m_dbHandle,
"UTF-8"); // T2 apparentemente non ha effetto

PGresult *risultatoQuery;
risultatoQuery =
PQexec(m_dbHandle, sqlQuery);

statoQ = PQresultStatus(risultatoQuery);

//(controlli per poter fare il return...)
return true;
}

Saluti,
Francesco

----Messaggio originale----
Da: gianni(dot)ciolli(at)2ndquadrant(dot)it
Data: 02/08/2013 17.40
A: <pgsql-it-generale(at)postgresql(dot)org>
Ogg: Re: [pgsql-it-generale] problema Cinese in DB UTF8

Ciao Francesco,

On Fri, Aug 02, 2013 at 05:17:05PM +0200, ciifrancesco(at)tiscali(dot)it wrote:
> Salve a tutti, scrivo per la prima volta.

Premetto che non ho molta esperienza di uso di caratteri cinesi;
tuttavia la connessione sembra corretta.

Potresti mostrare il codice C++ che costruisce ed esegue la query?

Ciao,
Dr. Gianni Ciolli - 2ndQuadrant Italia
PostgreSQL Training, Services and Support
gianni(dot)ciolli(at)2ndquadrant(dot)it | www.2ndquadrant.it

PGDay 2013 - 7° Conferenza Italiana su PostgreSQL
Prato, 25 ottobre 2013 | http://2013.pgday.it/

Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/

Responses

Browse pgsql-it-generale by date

  From Date Subject
Next Message Gianni Ciolli 2013-08-09 14:53:08 Re: R: problema Cinese in DB UTF8
Previous Message ciifrancesco@tiscali.it 2013-08-05 11:09:45 problema Cinese in DB UTF8