Op voorwaarde dat je inderdaad Facelets gebruikt (die standaard UTF-8 gebruikt) en geen PrimeFaces ajax (waarvan bekend is dat het de body-codering van verzoeken verprutst ), heeft uw probleem 2 oorzaken:
-
MySQL JDBC-stuurprogrammatekencodering is niet ingesteld op UTF-8. Dit veroorzaakte onleesbare tekens in de DB.
-
Eclipse-consoletekencodering is niet ingesteld op UTF-8. Dit veroorzaakte onleesbare tekens in
System.out
.
De oplossingen zijn:
-
Voeg
useUnicode=yes
toe encharacterEncoding=UTF-8
parameters naar de JDBC-verbinding. U kunt het ofwel specificeren als zoekreeks in de JDBC-URLjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
of als verbindingseigenschappen in de JDBC-gegevensbron, precies op dezelfde manier als je gebruikersnaam, wachtwoord, enz. hebt opgegeven.
-
Vertel Eclipse om UTF-8 te gebruiken als consolecodering door Venster> Voorkeuren> Algemeen> Werkruimte> Tekstbestandscodering :