Die meisten iOS-Emojis verwenden Codepunkte oberhalb der Basic Multilingual Plane der Unicode-Tabelle. Zum Beispiel ist 😄 (LÄCHELNDES GESICHT MIT OFFENEM MUND UND LÄCHELNDEN AUGEN) bei U+1F604.
Siehe nun http://dev.mysql.com/ doc/refman/5.5/en/charset-unicode.html .
MySQL vor Version 5.5 unterstützt nur UTF-8 für das BMP, das Zeichen zwischen U+0000 und U+FFFF enthält (d. h. nur eine Teilmenge des tatsächlichen UTF-8; MySQLs utf8
ist kein echtes UTF-8). Es kann das Zeichen am Codepunkt U+1F604 oder andere ähnliche "hohe Zeichen" nicht speichern. MySQL 5.5+ unterstützt utf8mb4
(aktuelles UTF-8), utf16
und utf32
, die diese Zeichen kodieren können. Wenn Sie MySQL 5.5+ verwenden, verwenden Sie einen dieser Spaltenzeichensätze und stellen Sie sicher, dass Sie denselben Zeichensatz für Ihre Verbindungscodierung zu/von PHP verwenden. Wenn Sie MySQL <5.5 verwenden, müssen Sie ein BLOB
verwenden Spaltentyp. Dieser Typ speichert rohe Bytes, ohne sich um die darin enthaltenen "Zeichen" zu kümmern. Der Nachteil ist, dass Sie den Text nicht effizient durchsuchen oder indizieren können.