I henhold til MySQL JDBC-driverdokumentation a> du skal også indstille tegnkodningen i JDBC-forbindelsens URL. Her er et eksempel:
jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Ellers vil MySQL JDBC-driveren bruge platformens standardkodning til at konvertere tegnene til bytes, før de sendes over netværket, hvilket i dit tilfælde tilsyneladende ikke er UTF-8. Alle udækkede tegn vil derefter blive erstattet af spørgsmålstegn.
Når du henter dataene, skal du også sikre, at konsollen/filen, hvor du viser/skriver tegnene til, også understøtter/bruger UTF-8. Ellers bliver de også spørgsmålstegn. Hvordan man løser det afhænger af, hvordan/hvor du viser/skriver disse tegn til.
Se også:
I øvrigt behøver du ikke SET NAMES
spørg her.