A condizione che tu stia effettivamente utilizzando Facelets (che utilizza UTF-8 per impostazione predefinita) e non utilizzi PrimeFaces ajax (che è noto per rovinare la codifica del corpo della richiesta ), il tuo problema ha 2 cause:
-
La codifica dei caratteri del driver MySQL JDBC non è stata impostata su UTF-8. Ciò ha causato caratteri confusi nel DB.
-
La codifica dei caratteri della console Eclipse non è stata impostata su UTF-8. Ciò ha causato caratteri confusi in
System.out
.
Le soluzioni sono:
-
Aggiungi
useUnicode=yes
echaracterEncoding=UTF-8
parametri alla connessione JDBC. Puoi specificarlo come stringa di query nell'URL JDBCjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
o come proprietà di connessione nell'origine dati JDBC, esattamente nello stesso modo in cui hai specificato nome utente, password, ecc.
-
Indica a Eclipse di utilizzare UTF-8 come codifica della console tramite Finestra> Preferenze> Generali> Area di lavoro> Codifica file di testo :