Verursacht durch: java.sql.SQLException: Falscher Zeichenfolgenwert: „\xF0\x9F\x94\xA5“ für Spalte. Beim Speichern von Emoji-Ausdrücken in MySQL tritt ein Fehler auf. iOS-Emoticons (Emoji-Emoticons): Obwohl dieses Emoticon UTF-8-codiert ist, belegt ein Zeichen 4 Bytes, während die MySQL-UTF8-Codierung nur 3-Byte-Zeichen speichern kann. In MySQL 5.6 können Sie die Kodierung auf utf8mb4 einstellen, eine Obermenge von utf8. 1. Ändern Sie den MySQL-Zeichensatz Mysql setzt den Zeichenkodierungssatz auf utf8mb4, und die entsprechende Datenbank, Tabelle und das entsprechende Feld werden auf utf8mb4 gesetzt. Beachten Sie, dass, wenn der utf8-Kodierungssatz einer vorhandenen Tabelle auf utf8mb4 geändert wird, die Datenbank, Tabelle und das Feld einmal gesetzt und überprüft werden müssen. Wenn nur die Datenbank geändert wird, ändern sich die entsprechende Tabelle und das entsprechende Feld nicht, und dasselbe gilt für das Ändern der Tabelle. Wenn Sie die Konfiguration geändert haben, müssen Sie möglicherweise auch die Datenbank neu starten. Zeichensatzserver = utf8mb4 2. JDBC aktualisieren Niedrigere Versionen von JDBC zeigen verstümmelte Zeichen, verstümmelte Ausdrücke und sogar verstümmelte chinesische Schriftzeichen an. Nachfolgend sind einige entsprechende Situationen der JDBC-Versionen aufgeführt. Die Einzelheiten sind wie folgt: Die JDBC-Version unterstützt EMOJI. Das Bild wurde im Internet gefunden. Mein 5.1.6-Test fügt chinesische und Emoji-Ausdrücke normal ein und zeigt sie an. 3. Übernehmen Sie die Serverkonfiguration jdbc:mysql://xxx.xxx.xxx.xxx:3306/dbwww58com_chrcsm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true. Die Parameter nach der Verbindungsadresse sind auf UTF-8 eingestellt oder können automatisch erkannt werden. Wenn nicht, versuchen Sie, den fettgedruckten Teil zu entfernen, damit die Verbindung die Serverkonfiguration automatisch erkennt. Die konkrete Situation hängt von der JDBC-Version ab. Übernehmen Sie die Serverkonfiguration jdbc:mysql://xxx.xxx.xxx.xxx:3306/dbwww58com_chrcsm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true. Die Parameter nach der Verbindungsadresse sind auf UTF-8 eingestellt oder können automatisch erkannt werden. Wenn nicht, versuchen Sie, den fettgedruckten Teil zu entfernen, damit die Verbindung die Serverkonfiguration automatisch erkennt. Die konkrete Situation hängt von der JDBC-Version ab. 4. Legen Sie den init_connect-Parameter von MySQL fest Nach der Festlegung können Sie dies überprüfen, indem Sie Variablen wie „init_connect“ anzeigen, wie in Abbildung 2 der init_connect-Parameterabfrage dargestellt: 5. Der Kodierungssatz ist im Code festgelegt. Vielleicht liegt es an der JDBC-Version. Ich verwende diese Methode und sowohl das Einfügen als auch die Abfrage können normal fortgesetzt werden. connection.prepareStatement("set names utf8mb4").executeQuery();Dann fügen Sie es über connection.prepareStatement ein. Der Kodierungssatz ist im Code festgelegt, möglicherweise aufgrund der JDBC-Version. Ich verwende diese Methode, und sowohl das Einfügen als auch die Abfrage können normal fortgesetzt werden. connection.prepareStatement("set names utf8mb4").executeQuery();Dann fügen Sie es über connection.prepareStatement ein. Das könnte Sie auch interessieren:
|
<<: 20 JavaScript-Tipps zur Verbesserung der Entwicklungseffizienz
Kürzlich erhielten wir von einem Kunden eine Bitt...
1. Fehlerdetails Als ich einmal manuell eine voll...
Inhaltsverzeichnis Überblick Indexdatenstruktur B...
Inhaltsverzeichnis Funktion Grundlegende Abfragef...
Das <marquee>-Tag ist ein Tag, das paarweis...
Das Konzept der gespeicherten MySQL-Prozedur: Ein...
Verwendung von „haben“ Mit der Having-Klausel kön...
Toy Story 3 Online-Marketing-Website Zen Mobile E...
1. Beschreibung Früher haben wir über die Install...
In diesem Artikelbeispiel wird der spezifische Co...
Versatz Offset ist der Offset. Mithilfe der Offse...
Vor der Inbetriebnahme unbedingt lesen: Hinweis: ...
In diesem Artikel wird der spezifische Code von j...
Der Weg vor uns ist lang und beschwerlich, aber i...
<br />Originaltext: http://research.microsof...