Za předpokladu, že skutečně používáte Facelets (který standardně používá UTF-8) a nepoužíváte PrimeFaces ajax (o kterém je známo, že narušuje kódování těla požadavku ), váš problém má 2 příčiny:
-
Kódování znaků ovladače MySQL JDBC není nastaveno na UTF-8. To způsobilo zkomolené znaky v DB.
-
Kódování znaků konzoly Eclipse není nastaveno na UTF-8. To způsobilo zkomolené znaky v
System.out
.
Řešení jsou:
-
Přidejte
useUnicode=yes
acharacterEncoding=UTF-8
parametry k připojení JDBC. Můžete jej zadat buď jako řetězec dotazu v JDBC URLjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
nebo jako vlastnosti připojení ve zdroji dat JDBC, přesně stejným způsobem, jakým jste zadali uživatelské jméno, heslo atd.
-
Řekněte Eclipse, aby jako konzolové kódování použilo UTF-8, pomocí Okna> Předvolby> Obecné> Pracovní plocha> Kódování textového souboru :