Většina emotikonů iOS používá kódové body nad základní vícejazyčnou rovinou tabulky Unicode. Například 😄 (USMĚJÍCÍ SE TVÁŘ S OTEVŘENÝMI ÚSTY A SMĚJÍCÍ SE OČIMA) je na U+1F604.
Nyní se podívejte na http://dev.mysql.com/ doc/refman/5.5/en/charset-unicode.html .
MySQL před verzí 5.5 podporuje pouze UTF-8 pro BMP, který obsahuje znaky mezi U+0000 a U+FFFF (tj. pouze podmnožinu skutečného UTF-8; utf8
MySQL není skutečné UTF-8). Nemůže uložit znak v kódovém bodě U+1F604 nebo jiné podobné "vysoké znaky". MySQL 5.5+ podporuje utf8mb4
(ve skutečnosti UTF-8), utf16
a utf32
, které jsou schopny tyto znaky zakódovat. Pokud používáte MySQL 5.5+, použijte jednu z těchto znakových sad sloupců a ujistěte se, že používáte stejnou znakovou sadu pro kódování připojení do/z PHP. Pokud používáte MySQL <5.5, budete muset použít BLOB
typ sloupce. Tento typ ukládá nezpracované bajty, aniž by se staral o „znaky“ v něm. Nevýhodou je, že nebudete moci efektivně vyhledávat nebo indexovat text.