Mysql
 sql >> Database >  >> RDS >> Mysql

Valore stringa errato quando si tenta di inserire UTF-8 in MySQL tramite JDBC?

utf8 di MySQL consente solo i caratteri Unicode che possono essere rappresentati con 3 byte in UTF-8. Qui hai un carattere che ha bisogno di 4 byte:\xF0\x90\x8D\x83 (U+10343 LETTERA GOTICA SAUIL ).

Se hai MySQL 5.5 o versioni successive, puoi modificare la codifica delle colonne da utf8 a utf8mb4 . Questa codifica consente la memorizzazione di caratteri che occupano 4 byte in UTF-8.

Potrebbe anche essere necessario impostare la proprietà del server character_set_server a utf8mb4 nel file di configurazione MySQL. Sembra che Connector/J di default sia 3 -byte Unicode altrimenti :

Ad esempio, per utilizzare set di caratteri UTF-8 a 4 byte con Connector/J, configurare il server MySQL con character_set_server=utf8mb4 e lascia characterEncoding dalla stringa di connessione Connector/J. Il connettore/J rileverà quindi automaticamente l'impostazione UTF-8.