Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JDBC character encoding

I have a Java Web application running on GlassFish 3 and JPA (EclipseLink) on MySQL. The problem I'm facing is that if I'm saving entities to the database with the update() method, String fields lose integrity; '?' is shown instead of some characters.

The server, pages and database are configured to use UTF-8.

After I post form data, the next page shows the data correctly. Furthermore it "seems" in NetBeans debug that the String property of the current entity stores the correct value too. I don't know if NetBeans debug can be trusted; might be that it decodes correctly, however it's incorrect.

like image 542
Daniel Szalay Avatar asked Sep 09 '25 16:09

Daniel Szalay


2 Answers

It's JDBC, not JPA that determines the encoding:

jdbc:mysql://localhost:3306/administer?characterEncoding=utf8
like image 50
Bozho Avatar answered Sep 12 '25 05:09

Bozho


I solved it with the following: I used the GlassFish admin interface to add this property to my connection pool's settings:

characterEncoding = UTF-8

like image 31
Daniel Szalay Avatar answered Sep 12 '25 05:09

Daniel Szalay