2010-04-22 22 views
15

¿Por qué MySQL no almacenará el carácter Unicode ? Sí, es un raro jeroglífico, no lo verías en el navegador.
UTF16 es U+2B5EEMySQL no desea almacenar caracteres Unicode

Warning: #1366 Incorrect string value: '\xF0\xAB\x97\xAE' for column 'ch' at row 1 

¿Es posible almacenar este personaje en MySQL?

+0

es posible que desee comprobar este http://bugs.mysql.com/bug.php?id=14052 que parecía estar relacionado. – xycf7

Respuesta

14

MySQL solo admite caracteres del plano multilingüe básico (0x0000 - 0xFFFF).

Tu personaje está fuera si este avión.

intente volver a almacenar un sinónimo lugar :)

Actualización:

MySQL 5.5.3 y en (que no ha pasado todavía GA) ¿son compatibles con caracteres complementarios si se utiliza UTF8MB4 encoding.

+0

Han tenido problemas con utf8 en MySQL por días. ¡Ahora sé por qué! ¡Gracias! –

2

Primera: su estado de

UTF16 es U + 2B5EE

es un poco mal. U+2B5EE es la notación para un punto de código de Unicode, solo un número entero, un código abstracto, mientras que UTF16 es una codificación de conjunto de caracteres (una de las posibles codificaciones Unicode, como es UTF-8).

Ahora, suponiendo que se refiera al punto de código, U+2B5EE está fuera del BMP (primeros 64K puntos de código unicode), y parece que mysql tiene little or no support for them. Entonces sospecho que no tienes suerte.

1

Desde que se publicó esta pregunta, se lanzó MySQL 5.5.3 que admite la codificación utf8mb4 que ofrece compatibilidad total con Unicode. Cambiar a este juego de caracteres en lugar de utf8 solucionaría su problema.

Recientemente escribí a detailed guide on how to switch from MySQL’s utf8 to utf8mb4. Si sigues los pasos allí, todo debería funcionar correctamente. Aquí están los enlaces directos a cada paso en el proceso:

Sospecho que su problema puede resolverse siguiendo el paso 5. ¡Espero que esto ayude!

Cuestiones relacionadas