Siempre que esté usando Facelets (que usa UTF-8 de forma predeterminada) y no esté usando PrimeFaces ajax (que se sabe que estropea la codificación del cuerpo de la solicitud ), su problema tiene 2 causas:
-
La codificación de caracteres del controlador MySQL JDBC no se ha establecido en UTF-8. Esto provocó caracteres ilegibles en la base de datos.
-
La codificación de caracteres de la consola de Eclipse no se ha establecido en UTF-8. Esto causó caracteres ilegibles en
System.out
.
Las soluciones son:
-
Agregar
useUnicode=yes
ycharacterEncoding=UTF-8
parámetros a la conexión JDBC. Puede especificarlo como cadena de consulta en la URL de JDBCjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
o como propiedades de conexión en la fuente de datos JDBC, exactamente de la misma manera que especificó el nombre de usuario, la contraseña, etc.
-
Dígale a Eclipse que use UTF-8 como codificación de consola mediante Ventana> Preferencias> General> Espacio de trabajo> Codificación de archivo de texto :