Отладка ошибки кодировки MySQL - PullRequest
1 голос
/ 08 августа 2009

У меня есть проект, в котором я собираю некоторые данные из файла 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, где я могу искать неправильные конфигурации / ошибки?

Ответы [ 3 ]

0 голосов
/ 08 августа 2009

Какой у вас набор символов для подключения? Взгляните на Свойства конфигурации Connect / J , а также на раздел , посвященный кодировкам

0 голосов
/ 01 апреля 2013

Вы также должны указать драйверу mysql использовать utf8

db.url=jdbc:mysql://HOST:3306/DB?characterEncoding=utf8
0 голосов
/ 08 августа 2009

Есть ли у вас:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

на вашей HTML-странице?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...