Desde que você esteja realmente usando Facelets (que usa UTF-8 por padrão) e não esteja usando PrimeFaces ajax (que é conhecido por atrapalhar a codificação do corpo da solicitação ), seu problema tem 2 causas:
-
A codificação de caracteres do driver MySQL JDBC não foi definida como UTF-8. Isso causou caracteres ilegíveis no banco de dados.
-
A codificação de caracteres do console Eclipse não foi configurada para UTF-8. Isso causou caracteres ilegíveis emSystem.out
.
As soluções são:
-
AdicioneuseUnicode=yes
echaracterEncoding=UTF-8
parâmetros para a conexão JDBC. Você pode especificá-lo como string de consulta na URL JDBC
jdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
ou como propriedades de conexão na fonte de dados JDBC, exatamente da mesma forma que você especificou nome de usuário, senha, etc.
-
Diga ao Eclipse para usar UTF-8 como codificação de console em Window> Preferences> General> Workspace> Text File Encoding :