jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
Anders gebruikt het MySQL JDBC-stuurprogramma de standaardcodering van het platform om de tekens naar bytes te converteren voordat het via het netwerk wordt verzonden, wat in uw geval blijkbaar niet UTF-8 is. Alle onbedekte tekens worden dan vervangen door vraagtekens.
Wanneer u de gegevens ophaalt, moet u er ook voor zorgen dat de console/het bestand waar u de tekens weergeeft/schrijft waarnaar u ook UTF-8 ondersteunt/gebruikt. Anders worden het ook vraagtekens. Hoe je dat oplost, hangt af van hoe/waar je die karakters weergeeft/schrijft.
Zie ook:
Trouwens, je hebt de SET NAMES
niet nodig vraag hier.