Почему MySQL не сохранит символ Unicode 𫗮
? Да, это редкий иероглиф, вы не увидите его в браузере.
UTF16 U+2B5EE
Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1
Можно ли сохранить этот символ в MySQL?
Почему MySQL не сохранит символ Unicode 𫗮
? Да, это редкий иероглиф, вы не увидите его в браузере.
UTF16 U+2B5EE
Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1
Можно ли сохранить этот символ в MySQL?
MySQL
поддерживает только символы базовой многоязычной плоскости (0x0000
- 0xFFFF
).
Ваш персонаж выключен, если эта плоскость.
Попробуйте вместо этого сохранить синоним:)
Update:
MySQL 5.5.3
и on (который еще не прошел GA) поддерживает вспомогательные символы, если вы используете UTF8MB4
encoding.
Сначала: ваше выражение
UTF16 - U + 2B5EE
немного ошибочно. U+2B5EE
- это обозначение для кодового слова Unicode, а целое число - абстрактный код, а UTF16 - кодировка кодировки (один из возможных кодировок Unicode, как и UTF-8).
Теперь, предполагая, что вы имеете в виду код, U+2B5EE
находится вне BMP (первые 64K unicode кодовые точки), и кажется, что mysql мало или вообще не поддержка для них. Поэтому я подозреваю, что вам не повезло.
Поскольку этот вопрос был опубликован, был выпущен MySQL 5.5.3, который поддерживает кодировку utf8mb4
, которая предлагает полную поддержку Unicode. Переключение на эту кодировку вместо utf8
устранит вашу проблему.
Недавно я написал подробное руководство по переключению с MySQL utf8
на utf8mb4
. Если вы выполните шаги там, все должно работать правильно. Вот прямые ссылки на каждый отдельный шаг процесса:
Я подозреваю, что ваша проблема может быть решена следующим шагом 5. Надеюсь, это поможет!