MySQL не хочет хранить символ unicode
Почему MySQL не будет хранить символ unicode
3 ответов
MySQL
поддерживает только символы из базовой многоязычной плоскости (0x0000
-0xFFFF
).
ваш персонаж, если этот самолет.
попробуйте вместо этого сохранить синоним:)
обновление:
MySQL 5.5.3
и on (который еще не ушел GA) поддерживает дополнительные символы, если вы используете UTF8MB4
кодирование.
во-первых: ваше заявление
UTF16-это U+2B5EE
немного не так. U+2B5EE
- это обозначение для Unicode codepoint, просто целое число - абстрактный код - в то время как UTF16-кодировка кодировки (одна из возможных кодировок Unicode, как UTF-8).
теперь, предположим, что вы имеете в виду кода U+2B5EE
находится вне BMP (первые 64K Unicode codepoints), и кажется, что mysql имеет мало или нет поддержки их!--14-->. Поэтому я подозреваю, что вам не повезло.
поскольку этот вопрос был опубликован, MySQL 5.5.3 был выпущен, который поддерживает utf8mb4
кодировка, которая предлагает полную поддержку Unicode. Переключение на эту кодировку вместо utf8
исправит вашу проблему.
Я недавно написал подробное руководство о том, как переключиться с MySQL utf8
to utf8mb4
. Если вы выполните шаги там, все должно работать правильно. Вот прямые ссылки на каждый отдельный шаг в процесс:
- Шаг 1: создайте резервную копию
- Шаг 2: Обновите сервер MySQL
- Шаг 3: Изменение баз данных, таблиц и столбцов
- Шаг 4: Проверьте максимальную длину столбцов и ключей индекса
- Шаг 5: измените наборы символов подключения, клиента и сервера
- Шаг 6: ремонт и оптимизация всех таблицы
Я подозреваю, что ваша проблема может быть решена на следующем шаге 5. Надеюсь, это поможет!