Специальные символы Юникода вызывают исключения в MySQL JDBC - PullRequest
1 голос
/ 01 марта 2012

Я выделил проблему, с которой мы столкнулись, до простого теста:

Попробуйте запустить прямую вставку JDBC или обновить тип столбца с длинным текстом со значением параметра новая строка (новый символ [] {0xDBFF, 0xDC00});

Возникает исключение, заявляющее: «Неверное значение строки:« \ xF4 \ x8F \ xB0 \ x80 »для столбца»

Похоже, что эти два символа, соединенные вместе, образуют действительный китайский символ (по отдельности они не имеют смысла)

Как я могу справиться с этими испорченными персонажами? Они образуют действительный символ, и Character.isDefined возвращает true для обоих символов. Кажется, что удаление именно этих кодов символов из всех строк приведет к большему количеству проблем с различными комбинациями китайских символов.

1 Ответ

4 голосов
/ 02 марта 2012

Закодировано UFT-8, этот символ будет иметь 4 байта:

11110100 10001111 10110000 10000000

MySQL 5.0 / 5.1 не поддерживает 4-байтовые символы UTF8, это известное ограничение. MySQL 5.5 поддерживает 4-байтовые символы UTF8.

См. 9.1.10. Поддержка Unicode

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