Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Valor de string incorreto ao tentar inserir UTF-8 no MySQL via JDBC?


utf8 do MySQL permite apenas os caracteres Unicode que podem ser representados com 3 bytes em UTF-8. Aqui você tem um caractere que precisa de 4 bytes:\xF0\x90\x8D\x83 (U+10343 CARTA GÓTICA SAUIL ).

Se você tiver o MySQL 5.5 ou posterior, poderá alterar a codificação da coluna de utf8 para utf8mb4 . Essa codificação permite o armazenamento de caracteres que ocupam 4 bytes em UTF-8.

Você também pode ter que definir a propriedade do servidor character_set_server para utf8mb4 no arquivo de configuração do MySQL. Parece que Connector/J é padronizado para 3 -byte Unicode caso contrário :

Por exemplo, para usar conjuntos de caracteres UTF-8 de 4 bytes com Connector/J, configure o servidor MySQL com character_set_server=utf8mb4 , e deixe characterEncoding fora da cadeia de conexão Connector/J. O Connector/J detectará automaticamente a configuração UTF-8.