Falscher Zeichenfolgenwert: Emoji-Kodierungsproblem
Problem:
Ihre MySQL-Datenbank stößt auf a Fehler „java.sql.SQLException: Falscher Zeichenfolgenwert …“, wenn Sie versuchen, einen Zeichenfolgenwert einzufügen, der Folgendes enthält: Emojis.
Problem:
Das Problem liegt in der Kodierung der Emoji-Zeichen. Der utf8-Zeichensatz von MySQL unterstützt nur Zeichen aus der grundlegenden mehrsprachigen Ebene. Emojis fallen jedoch außerhalb dieses Bereichs und erfordern eine breitere Kodierung wie utf8mb4.
Lösung:
Um dieses Problem zu beheben, müssen Sie Ihre MySQL-Datenbank und Ihr Java-Programm konfigurieren um utf8mb4 zu unterstützen Kodierung:
-
MySQL:
- MySQL auf Version 5.5 oder höher aktualisieren.
- Verbindungskodierung auf utf8mb4 setzen Verwenden Sie die Abfrage: SET NAMES 'utf8mb4'.
- Ändern Sie die betroffene Tabellenspalte So verwenden Sie den Zeichensatz und die Sortierung von utf8mb4: var1 varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci.
-
Java:
- Stellen Sie sicher, dass Ihr Java-Programm die neueste Version verwendet JDBC-Treiber.
- Wenn Sie Connector/J verwenden, legen Sie die Zeichenkodierung auf utf8 fest und stellen Sie sicher, dass die automatische Erkennung deaktiviert ist (characterEncoding ist nicht in der Verbindungszeichenfolge festgelegt).
Zusätzliche Hinweise:
- Ihre Emojis werden als Sequenzen von vier Unicode-Codepunkten dargestellt, die in Java nicht als einzelne Zeichen dargestellt werden können.
- Bei der Darstellung dieser Emojis kann es in einigen IDEs und Terminalkonsolen zu Problemen kommen. Stellen Sie sicher, dass Sie Schriftarten verwenden, die diese Zeichen unterstützen.
Durch die Implementierung dieser Änderungen können Sie Emoji-Zeichen in Ihrer MySQL-Datenbank und Ihrem Java-Programm unterstützen.
Das obige ist der detaillierte Inhalt vonWie behebe ich „Falscher String-Wert: Emoji-Kodierungsproblem' in MySQL und Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn