Innymi słowy, sterownik MySQL JDBC nie obsługuje kodowania znaków, w którym znaki zostały pierwotnie przesłane. Sterownik MySQL JDBC domyślnie używa domyślnego kodowania platformy podczas wysyłania danych znakowych do bazy danych, które może być na przykład ISO 8859-1. Musisz mu powiedzieć, żeby tego nie robił, określając useUnicode
i characterEncoding
parametry w adresie URL JDBC.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Kiedy używasz Facelets jako technologii widoku, JSF domyślnie już sam ustawia UTF-8, jeśli chodzi o renderowanie treści HTML i przetwarzanie przesłanych wartości parametrów. Więc problem przynajmniej nie istnieje.
Zobacz też:
- Unicode — jak uzyskać znaki, prawda? - Bazy danych
- Podręcznik MySQL Connector/J — 19.3.4.4. Używanie zestawów znaków i Unicode