Falscher Zeichenfolgenwertfehler beim Einfügen von UTF-8 in MySQL über JDBC
Beim Versuch, Unicode-Text mithilfe von JDBC in eine MySQL-Datenbank einzufügen, Benutzer können auf den Fehler „Falscher Zeichenfolgenwert“ stoßen, insbesondere wenn der Text die Bytefolge xF0 enthält. Dieses Problem tritt häufig bei großen Datensätzen auf und kann auf die standardmäßigen Codierungsbeschränkungen von MySQL zurückgeführt werden.
Fehlerursache:
Die utf8-Codierung von MySQL unterstützt nur Unicode-Zeichen, die in drei Darstellungen dargestellt werden können Bytes. Bestimmte Unicode-Zeichen wie xF0x90x8Dx83 erfordern jedoch vier Bytes in UTF-8. Der Versuch, solche Zeichen in eine utf8-codierte Spalte einzufügen, löst den Fehler aus.
Lösung:
Um das Problem zu beheben, können zwei Ansätze gewählt werden:
Spalte ändern Kodierung:
Aktualisieren Sie die Kodierung der Spalte auf utf8mb4, das Vier-Byte-Unicode-Zeichen unterstützt. Dies kann mit der folgenden SQL-Anweisung erfolgen:
ALTER TABLE <table_name> MODIFY COLUMN <column_name> TEXT COLLATE utf8mb4;
Servereigenschaften konfigurieren:
Wenn Sie MySQL Version 5.5 oder höher verwenden, legen Sie fest Setzen Sie die Eigenschaft „character_set_server“ in der MySQL-Konfigurationsdatei auf „utf8mb4“, damit der Server Vier-Byte-Unicode verarbeiten kann Zeichen.
character_set_server = utf8mb4
Connector/J-Konfiguration:
Connector/J erkennt automatisch die UTF-8-Einstellung, wenn der Parameter „characterEncoding“ weggelassen wird die Verbindungszeichenfolge. Lassen Sie daher bei 4-Byte-UTF-8-Zeichensätzen „characterEncoding“ weg und legen Sie „character_set_server“ wie oben beschrieben fest.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Falscher Zeichenfolgenwert' beim Einfügen von Unicode-Text in MySQL mithilfe von JDBC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!