Pod warunkiem, że rzeczywiście używasz Facelets (który domyślnie używa UTF-8) i nie używasz PrimeFaces ajax (który jest znany z blokowania kodowania treści żądania ), Twój problem ma 2 przyczyny:
-
Kodowanie znaków sterownika MySQL JDBC nie jest ustawione na UTF-8. Spowodowało to zniekształcenie znaków w bazie danych.
-
Kodowanie znaków w konsoli Eclipse nie jest ustawione na UTF-8. Spowodowało to zniekształcenie znaków w
System.out
.
Rozwiązania to:
-
Dodaj
useUnicode=yes
icharacterEncoding=UTF-8
parametry do połączenia JDBC. Można go określić jako ciąg zapytania w adresie URL JDBCjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
lub jako właściwości połączenia w źródle danych JDBC, dokładnie w taki sam sposób, w jaki określiłeś nazwę użytkownika, hasło itp.
-
Powiedz Eclipse, aby używało UTF-8 jako kodowania konsoli, wybierając Okno> Preferencje> Ogólne> Obszar roboczy> Kodowanie pliku tekstowego :