5

JDBC and MySQL work just fine in my project except when it comes down to accented characters. This is the URL I use to access the database:

jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=UTF-8

Suppose a resultSet = preparedStatement.executeQuery(), and then a System.out.println(resultSet.getString("text_with_accents"));. What's stored in the database is àèìòù (note that I've already set the right encoding in the database and all its tables), but what I get is ?????.

Is there a way to fix this?

pr0gma
  • 557
  • 1
  • 7
  • 18

2 Answers2

6

Try to change your url like

url="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8" 

The & must be represented as &

Fahim Farook
  • 1,446
  • 2
  • 13
  • 36
Rahul Tripathi
  • 161,154
  • 30
  • 262
  • 319
0

Probably...

  • you had utf8-encoded data (good)
  • SET NAMES latin1 was in effect (default, but wrong)
  • the column was declared CHARACTER SET latin1 (default, but wrong)
Rick James
  • 122,779
  • 10
  • 116
  • 195