Originariamente inviato da andbin
Immagino che a livello di String Java il testo sia correttamente codificato. Fin qui non ci dovrebbero essere problemi (perché se ce ne fossero, bisognerebbe vedere da dove/come arriva la stringa!).

Il secondo punto è come fai la query, cioè direttamente con JDBC? Sarebbe appropriato usare un PreparedStatement e assegnare la stringa in modo "parametrico", così almeno non si avrebbero "grane" nella composizione effettiva della query.

Il terzo punto è il DB ed è qui presumibilmente il nocciolo del problema. Qui entra in gioco il charset, che può essere associato in modo specifico ad un campo, alla tabella o più globalmente al database. Dipende quale è questo charset .... potrebbe essere il latin1 (ISO-8859-1), UTF-8 o altro. Qualunque sia deve permettere di codificare i caratteri greci.

Se il problema è questo .... Java non centra nulla, devi verificare la configurazione della base dati ed eventualmente modificarla.
Sì, la query (almeno per ora) la gestisco in modo semplice, col metodo Statement.execute(String query). Non credo c'entri troppo il db, in quanto inserendo i dati via sqldeveloper (cioè facendo copia e incolla del testo greco dal sw sqldeveloper), i testi sono corretti e riesco anche a prelevarli correttamente.

Di più: se inserisco questa query:
codice:
stmt.execute("insert into passi(testo_originale) values('\u611b') ")
Cioè inviando direttamente il codice unicode del carattere "愛", questo viene correttamente inserito!