utf8mb4_unicode_ci - utf8mb4 mysql config
MySQL no quiere almacenar caracteres Unicode (3)
Primero: su extracto
UTF16 es U + 2B5EE
es un poco incorrecto U+2B5EE
es la notación para un punto de código 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, asumiendo que se U+2B5EE
al punto de código, U+2B5EE
está fuera del BMP (primeros 64K puntos de código unicode), y parece que mysql tiene poco o ningún soporte para ellos . Entonces sospecho que no tienes suerte.
¿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+2B5EE
Warning: #1366 Incorrect string value: ''/xF0/xAB/x97/xAE'' for column ''ch'' at row 1
¿Es posible almacenar este personaje en MySQL?
MySQL
solo admite caracteres del plano multilingüe básico ( 0x0000
- 0xFFFF
).
Tu personaje está fuera si este avión.
Trate de almacenar un sinónimo en su lugar :)
Actualizar:
MySQL 5.5.3
y on (que aún no se ha convertido en GA) admite caracteres suplementarios si utiliza la codificación UTF8MB4
.
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 conjunto de caracteres en lugar de utf8
solucionaría su problema.
Recientemente escribí una guía detallada sobre cómo cambiar de utf8
de MySQL a utf8mb4
. Si sigues los pasos allí, todo debería funcionar correctamente. Aquí hay enlaces directos a cada paso individual en el proceso:
- Paso 1: crea una copia de seguridad
- Paso 2: Actualiza el servidor MySQL
- Paso 3: modificar bases de datos, tablas y columnas
- Paso 4: comprueba la longitud máxima de las columnas y las claves de índice
- Paso 5: Modificar los conjuntos de caracteres de conexión, cliente y servidor
- Paso 6: Reparar y optimizar todas las tablas
Sospecho que su problema puede resolverse siguiendo el paso 5. ¡Espero que esto ayude!