Mysql
 sql >> Base de données >  >> RDS >> Mysql

Valeur de chaîne incorrecte lors de la tentative d'insertion d'UTF-8 dans MySQL via JDBC ?

utf8 de MySQL autorise uniquement les caractères Unicode qui peuvent être représentés avec 3 octets en UTF-8. Ici vous avez un caractère qui a besoin de 4 octets :\xF0\x90\x8D\x83 (U+10343 LETTRE GOTHIQUE SAUIL ).

Si vous avez MySQL 5.5 ou une version ultérieure, vous pouvez modifier l'encodage de colonne de utf8 à utf8mb4 . Cet encodage permet de stocker des caractères qui occupent 4 octets en UTF-8.

Vous devrez peut-être également définir la propriété de serveur character_set_server à utf8mb4 dans le fichier de configuration MySQL. Il semble que Connector/J par défaut à 3 -byte Unicode sinon :

Par exemple, pour utiliser des jeux de caractères UTF-8 à 4 octets avec Connector/J, configurez le serveur MySQL avec character_set_server=utf8mb4 , et laissez characterEncoding hors de la chaîne de connexion Connector/J. Connector/J détectera alors automatiquement le paramètre UTF-8.