sql >> Base de Datos >  >> RDS >> Mysql

¿Valor de cadena incorrecto al intentar insertar UTF-8 en MySQL a través de JDBC?

utf8 de MySQL permite solo los caracteres Unicode que se pueden representar con 3 bytes en UTF-8. Aquí tienes un carácter que necesita 4 bytes:\xF0\x90\x8D\x83 (U+10343 LETRA GÓTICA SAUIL ).

Si tiene MySQL 5.5 o posterior, puede cambiar la codificación de la columna de utf8 a utf8mb4 . Esta codificación permite almacenar caracteres que ocupan 4 bytes en UTF-8.

Es posible que también deba establecer la propiedad del servidor character_set_server a utf8mb4 en el archivo de configuración de MySQL. Parece que Connector/J por defecto es 3 -byte Unicode de lo contrario :

Por ejemplo, para usar conjuntos de caracteres UTF-8 de 4 bytes con Connector/J, configure el servidor MySQL con character_set_server=utf8mb4 y deja characterEncoding fuera de la cadena de conexión Connector/J. Connector/J detectará automáticamente la configuración UTF-8.