У меня есть проект, в котором я собираю некоторые данные из файла HTML, помещаю их в базу данных MySQL, а затем снова считываю и показываю их пользователю. Всякий раз, когда сервлет вставляет что-либо в БД, знак «£» вставляется как , а при повторном считывании представляется как.
Приложение написано на Java (с Spring) и JPA с EclipseLink в качестве реализации JPA.
Я сузил проблему до вставки в MySQL, поскольку при просмотре таблицы в консоли появляется знак вопроса.
Я настроил MySQL для использования UTF-8 в качестве стандартной кодировки в my.cnf
[mysqld]
default-character-set=utf8
Если я бегу
SHOW TABLE STATUS;
Я вижу, что сопоставление в таблицах
utf8_general_ci
, что предполагает, что набор символов также является UTF-8.
Также есть это:
mysql> SHOW CREATE DATABASE gate;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| gate | CREATE DATABASE `gate` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
Итак, когда Java полностью unicode (?) И моя БД установлена в UTF-8, где я могу искать неправильные конфигурации / ошибки?