Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Falscher Zeichenfolgenwert beim Versuch, UTF-8 über JDBC in MySQL einzufügen?

utf8 von MySQL erlaubt nur die Unicode-Zeichen, die in UTF-8 mit 3 Bytes dargestellt werden können. Hier haben Sie ein Zeichen, das 4 Bytes benötigt:\xF0\x90\x8D\x83 (U+10343 GOTISCHER BUCHSTABE SAUIL ).

Wenn Sie MySQL 5.5 oder höher haben, können Sie die Spaltenkodierung von utf8 ändern zu utf8mb4 . Diese Codierung ermöglicht die Speicherung von Zeichen, die in UTF-8 4 Byte belegen.

Eventuell müssen Sie auch die Servereigenschaft character_set_server setzen zu utf8mb4 in der MySQL-Konfigurationsdatei. Es scheint, dass Connector/J standardmäßig auf 3 eingestellt ist -byte Unicode andernfalls :

Um beispielsweise 4-Byte-UTF-8-Zeichensätze mit Connector/J zu verwenden, konfigurieren Sie den MySQL-Server mit character_set_server=utf8mb4 , und verlassen Sie characterEncoding aus der Connector/J-Verbindungszeichenfolge. Connector/J erkennt dann automatisch die UTF-8-Einstellung.