In altre parole, il driver MySQL JDBC non supporta la codifica dei caratteri con cui i caratteri sono stati originariamente inviati. Il driver MySQL JDBC utilizza per impostazione predefinita la codifica predefinita della piattaforma quando invia i dati dei caratteri al DB, che potrebbe essere ad esempio ISO 8859-1. Devi dirgli di non farlo specificando useUnicode
e characterEncoding
parametri nell'URL JDBC.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Quando si utilizza Facelets come tecnologia di visualizzazione, JSF utilizza già di default UTF-8 quando si tratta di eseguire il rendering di contenuto HTML e di elaborare i valori dei parametri inviati. Quindi il problema almeno non è lì.
Vedi anche:
- Unicode - Come ottenere il personaggi vero? - Banche dati
- MySQL Connector/J Manual - 19.3.4.4. Utilizzo di set di caratteri e Unicode