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 http://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.