При условие, че наистина използвате Facelets (които по подразбиране използва UTF-8) и не използвате PrimeFaces ajax (за който е известно, че обърква кодирането на тялото на заявката ), проблемът ви има 2 причини:
-
Кодирането на символите на драйвера на MySQL JDBC не е зададено на UTF-8. Това доведе до изкривени знаци в БД.
-
Кодирането на символите на конзолата на Eclipse не е зададено на UTF-8. Това доведе до изкривени знаци в
System.out
.
Решенията са:
-
Добавете
useUnicode=yes
иcharacterEncoding=UTF-8
параметри към JDBC връзката. Можете да го посочите или като низ на заявка в URL адреса на JDBCjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
или като свойства на връзката в източник на данни JDBC, точно по същия начин, както сте посочили потребителско име, парола и т.н.
-
Кажете на Eclipse да използва UTF-8 като конзолно кодиране чрез Прозорец> Предпочитания> Общи> Работно пространство> Кодиране на текстови файлове :