Förutsatt att du verkligen använder Facelets (som använder UTF-8 som standard) och inte använder PrimeFaces ajax (som är känd för att förstöra begärandekroppskodning ), har ditt problem två orsaker:
-
MySQL JDBC-drivrutinens teckenkodning är inte inställd på UTF-8. Detta orsakade förvrängda tecken i databasen.
-
Eclipse-konsolens teckenkodning är inte inställd på UTF-8. Detta orsakade förvrängda tecken i
System.out
.
Lösningarna är:
-
Lägg till
useUnicode=yes
ochcharacterEncoding=UTF-8
parametrar till JDBC-anslutningen. Du kan ange det antingen som frågesträng i JDBC-URL:njdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
eller som anslutningsegenskaper i JDBC-datakällan, exakt på samma sätt som du angav användarnamn, lösenord, etc.
-
Be Eclipse använda UTF-8 som konsolkodning genom Fönster> Inställningar> Allmänt> Arbetsyta> Textfilkodning :