Umgang mit falschen String-Werten beim Einfügen von UTF-8 in MySQL über JDBC
Beim Versuch, UTF-8-Daten mit in eine MySQL-Datenbank einzufügen Wenn Sie JDBC verwenden, wird möglicherweise die Fehlermeldung „Falscher Zeichenfolgenwert:“ angezeigt. 'xF0x90x8Dx83xF0x90...'“ Dieser Fehler tritt häufig auf, wenn der eingefügte Text Zeichen enthält, die nicht im utf8-Zeichensatz von MySQL dargestellt werden können.
Während Ihre Verbindungseinstellungen die Verwendung von Unicode („useUnicode=true“) und beinhalten UTF-8-Kodierung („characterEncoding=utf-8“), die utf8-Kodierung von MySQL unterstützt nur Unicode-Zeichen, die mit 3 dargestellt werden können Bytes in UTF-8. Das Zeichen, das den Fehler verursacht, benötigt jedoch 4 Bytes.
Lösung:
Um dieses Problem zu beheben, haben Sie zwei Möglichkeiten:
Beachten Sie, dass Connector/J, das häufig für JDBC-Verbindungen mit MySQL verwendet wird, standardmäßig 3-Byte-Unicode verwendet. Daher wird empfohlen, „characterEncoding“ aus Ihrer Verbindungszeichenfolge wegzulassen und den MySQL-Server mit „character_set_server=utf8mb4“ zu konfigurieren, damit Connector/J die UTF-8-Einstellung automatisch erkennen kann.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Falscher Zeichenfolgenwert' beim Einfügen von UTF-8-Daten in MySQL über JDBC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!