Musisz powiedzieć sterownikowi JDBC, aby używał kodowania UTF-8 podczas dekodowania znaków reprezentujących zapytanie SQL na bajty. Możesz to zrobić, dodając useUnicode=yes
i characterEncoding=UTF-8
parametry zapytania do adresu URL połączenia JDBC.
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
W przeciwnym razie użyje domyślnego zestawu znaków platformy systemu operacyjnego. Sterownik MySQL JDBC sam jest świadomy kodowania używanego zarówno po stronie klienta (gdzie działa kod JDBC), jak i po stronie serwera (gdzie znajduje się tabela DB). Każdy znak, który nie jest objęty zestawem znaków używanym przez tabelę DB, zostanie zastąpiony znakiem zapytania.