Większość emotikonów iOS używa punktów kodowych powyżej podstawowej płaszczyzny wielojęzycznej tabeli Unicode. Na przykład 😄 (UŚMIECHNIĘTA TWARZ Z OTWARTYMI USTAMI I UŚMIECHNIĘTYMI OCZAMI) to U+1F604.

Teraz zobacz https://dev.mysql.com/ doc/refman/5.5/en/charset-unicode.html .
MySQL przed wersją 5.5 obsługuje tylko UTF-8 dla BMP, który zawiera znaki od U+0000 do U+FFFF (tj. tylko podzbiór rzeczywistego UTF-8; utf8 MySQL nie jest prawdziwym UTF-8). Nie może przechowywać znaku w punkcie kodowym U+1F604 lub innych podobnych „wysokich znaków”. MySQL 5.5+ obsługuje utf8mb4 (rzeczywisty UTF-8), utf16 i utf32 , które są w stanie zakodować te znaki. Jeśli używasz MySQL 5.5+, użyj jednego z tych zestawów znaków kolumn i upewnij się, że używasz tego samego zestawu znaków do kodowania połączenia do/z PHP. Jeśli korzystasz z MySQL <5.5, będziesz musiał użyć BLOB typ kolumny. Ten typ przechowuje surowe bajty bez zwracania uwagi na zawarte w nich „znaki”. Minusem jest to, że nie będziesz w stanie efektywnie przeszukiwać ani indeksować tekstu.