Em outras palavras, o driver MySQL JDBC não suporta a codificação de caracteres na qual os caracteres foram originalmente enviados. O driver MySQL JDBC é padronizado para a codificação padrão da plataforma ao enviar dados de caracteres para o banco de dados, que pode ser, por exemplo, ISO 8859-1. Você precisa dizer para não fazer isso especificando o
useUnicode
e characterEncoding
parâmetros na URL JDBC. jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Quando você está usando Facelets como tecnologia de visualização, o JSF já assume o padrão UTF-8 quando se trata de renderizar conteúdo HTML e processar valores de parâmetros enviados. Então o problema pelo menos não está aí.
Veja também:
- Unicode - Como obter o personagens certo? - Bancos de dados
- Conector MySQL/Manual J - 19.3.4.4. Usando conjuntos de caracteres e Unicode