Смайлики iPhone вставляются в MySQL, но становятся пустым значением

Мы разрабатываем приложение для iPhone, которое будет отправлять смайлики с iPhone на серверный PHP и вставлять в таблицы MySQL. Я работаю на стороне сервера.

Но после успешного выполнения инструкции insert вставленное значение становится пустым.
То, что я мог правильно вставить в поле (varchar), это текст, но однажды включив смайлики,
просто текст может быть вставлен, и смайлики будут автоматически разрезаны.

Кто-то дает мне совет по установке типа поля в блог, чтобы он мог хранить данные изображения.
Но вставленное значение не всегда включает в себя смайлики, а размер мал.

* Я использую mysql_real_escape_string для вставки значения.

Большинство iOS emojis используют коды над базовой многоязычной плоскостью в таблице Unicode. Например, 😄 (SMILING FACE WITH OPEN ROUT и SMILING EYES) находится на U + 1F604.

Просмотр персонажа OS X

Теперь см. http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html .

MySQL до версии 5.5 поддерживает только UTF-8 для BMP, который включает символы между U + 0000 и U + FFFF (т.е. только подмножество фактического UTF-8, MySQL utf8 не является реальным UTF-8). Он не может хранить символ в кодовой точке U + 1F604 или других подобных «высоких символах». MySQL 5.5+ поддерживает utf8mb4 (фактический UTF-8), utf16 и utf32 , которые могут кодировать эти символы. Если вы используете MySQL 5.5+, используйте один из этих наборов символов столбца и убедитесь, что вы используете одну и ту же кодировку для кодировки соединения с PHP. Если вы используете MySQL <5.5, вам нужно будет использовать тип столбца BLOB . Этот тип хранит необработанные байты, не заботясь о «персонажах» в нем. Недостатком является то, что вы не сможете эффективно искать или индексировать текст.

Некоторые из символов emoji работают со старыми не-blobed конфигурациями mysql, потому что они закодированы с использованием 3-байтового кода, а mysql может хранить 3-байтовый символ. Если вы не можете обновить mysql и не использовать капли по какой-либо причине, вы можете очистить 4 байта кодовых точек и сохранить 3 байта.

Если ваш компьютер обладает возможностями emoji, вот список трехбайтовых символов iOS emoji:

☺❤✨❕❔✊✌✋☝☀☔☁⛄⚡☎➿✂⚽⚾⛳ ♠ ♥ ♣ ♦ 〽☕⛪⛺⛲⛵✈⛽⚠♨1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣0⃣ # ⃣⬆⬇⬅➡↗↖↘↙ ◀ ▶ ⏪⏩♿ ㊙㊗✳✴♈♉♊♋♌♍♎♏♐♑♒♓⛎⭕❌ © ® ™