Mysql
 sql >> Datenbank >  >> RDS >> Mysql

iPhone-Emoticons werden in MySQL eingefügt, werden aber zu einem leeren Wert

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.