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

MySQL arroja un error de valor de cadena incorrecto

Es el carácter al final del tweet el que está causando el problema.

Parece un carácter 'emoji', también conocido como carita sonriente japonesa, pero no se muestra ni en Chrome ni en Safari.

Existen problemas conocidos al almacenar caracteres utf de 4 bytes en algunas versiones de MySQL. Aparentemente, debe usar utf8mb4 para representar caracteres UTF de 4 bytes, ya que el conjunto de caracteres utf8 normal solo puede representar caracteres de hasta 3 bytes de longitud y, por lo tanto, no puede almacenar caracteres que están fuera de Plano multilingüe básico

http://dev.mysql.com/doc /refman/5.5/en/charset-unicode-utf8mb4.html

Lo cual es una novedad para mí, ya que básicamente significa que el tipo de datos utf8 en MySQL no es realmente utf8 adecuado.

Hay sugerencias sobre cómo manejar esto aquí ¿Cómo insertar el carácter utf-8 mb4 (emoji en ios5) en mysql? incluyendo:

"También asegúrese de que la capa de su aplicación establezca el conjunto de caracteres de sus conexiones de base de datos en utf8mb4. Vuelva a verificar que esto realmente esté sucediendo:si está ejecutando una versión anterior de la biblioteca de cliente mysql de su marco elegido, es posible que no se haya compilado con soporte utf8mb4 y no establecerá el conjunto de caracteres correctamente. Si no, es posible que deba actualizarlo o compilarlo usted mismo"

Si está utilizando Connector/J, debe establecer character_set_server=utf8mb4 en la configuración de conexión.

Todos sus conjuntos de caracteres deben ser utf8mb4, que puede haber probado pero que actualmente no están configurados.