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
Inhaltsverzeichnis 1 Einleitung 2 Trigger-Einführ...
Einführung von zwei Methoden zum Anzeigen von MyS...
In diesem Artikel wird der spezifische Code von U...
Dieser Artikel stellt die Befehlsanweisungen zum ...
Beim Erstellen eines Tomcat-Servers auf einem lok...
Vorwort WeChat-Miniprogramme bieten neue offene F...
Linux-Grep-Befehl Mit dem Linux-Befehl grep könne...
So überprüfen Sie den Dateisystemtyp einer Partit...
Wenn Ihre Webanwendung nur auf einer Maschine läu...
Anmerkung des Herausgebers: Dieser Artikel wurde ...
Die Tabelle sieht wie folgt aus: HTML-Quellcode E...
•Es gibt viele Selektoren in CSS. Was passiert, w...
Vorwort Wenn wir einen MySQL-Cluster erstellen, m...
Vorwort Heute bin ich in Nginx auf ein sehr selts...
Schauen wir uns zunächst einen CSS-Karussell-Anim...