У меня есть веб-приложение Java, работающее на GlassFish 3 и JPA (EclipseLink) на MySQL. Проблема, с которой я сталкиваюсь, является этим, если я сохраняю объекты к базе данных с update()
метод, String
поля теряют целостность; '?'
показан вместо некоторых символов.
Сервер, страницы и база данных настроены для использования UTF-8
.
После того, как я отправлю данные формы, следующая страница показывает данные правильно. Кроме того, "кажется" в отладке NetBeans что String
свойство текущего объекта хранит правильное значение также. Не знайте, можно ли отладке NetBeans доверять; мог бы быть то, что это декодирует правильно, однако это неправильно.
Кодировку определяет JDBC, а не JPA:
jdbc:mysql://localhost:3306/administer?characterEncoding=utf8
Я решил эту проблему следующим образом: Я использовал интерфейс администратора GlassFish, чтобы добавить это свойство в настройки моего пула соединений:
characterEncoding = UTF-8