Risolto, ho dimenticato di aggiungere la codifica durante l'inizializzazione di Connection:
prima era:
con = DriverManager.getConnection("jdbc:mysql:///dbname", "user", "pass");
ora (funzionante):
con = DriverManager.getConnection("jdbc:mysql:///dbname?useUnicode=true&characterEncoding=utf-8", "user", "pass");