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

MySQL gibt den Fehler „Falscher Zeichenfolgenwert“ aus

Es ist das Zeichen am Ende des Tweets, das das Problem verursacht.

Es sieht aus wie ein "Emoji"-Zeichen, auch bekannt als japanisches Smiley-Gesicht, aber es wird mir weder in Chrome noch in Safari angezeigt.

Es gibt bekannte Probleme beim Speichern von 4-Byte-UTF-Zeichen in einigen Versionen von MySQL. Anscheinend müssen Sie utf8mb4 verwenden, um 4-Byte-UTF-Zeichen darzustellen, da der normale utf8-Zeichensatz nur Zeichen mit einer Länge von bis zu 3 Byte darstellen kann und daher keine Zeichen speichern kann, die außerhalb des Einfache mehrsprachige Ebene

http://dev.mysql.com/doc /refman/5.5/en/charset-unicode-utf8mb4.html

Was mir neu ist, da es im Grunde bedeutet, dass der utf8-Datentyp in MySQL nicht wirklich utf8 ist.

Vorschläge zur Handhabung finden Sie hierWie füge ich utf-8 mb4-Zeichen (Emoji in ios5) in mysql ein? einschließlich:

„Stellen Sie außerdem sicher, dass Ihr App-Layer den Zeichensatz seiner Datenbankverbindungen auf utf8mb4 einstellt. Überprüfen Sie, ob dies tatsächlich geschieht – wenn Sie eine ältere Version der mysql-Client-Bibliothek Ihres gewählten Frameworks ausführen, wurde diese möglicherweise nicht mit utf8mb4-Unterstützung kompiliert und es wird den Zeichensatz nicht richtig setzen. Wenn nicht, müssen Sie es möglicherweise aktualisieren oder selbst kompilieren."

Wenn Sie Connector/J verwenden, müssen Sie character_set_server=utf8mb4 in der Verbindungskonfiguration setzen.

Alle Ihre Zeichensätze sollten utf8mb4 sein, was Sie vielleicht versucht haben, aber derzeit nicht eingestellt sind.