Después de leer todos los temas sobre emoji en SO, estoy limitado a pedir ayuda. La pregunta parece ser casi la misma: recibí una aplicación de iPhone enviando a través de emoji PHP a MySQL DB, puedo ver algunos símbolos en los registros, como por ejemplo "paraguas" y "nube" pero otros no (cara enojada, cara sonriente y otro).Emoji en MySQL y PHP: ¿por qué algunos símbolos sí otros no?
¿Por qué algunos sí y otros no?
- MySQL Colación: utf8mb_unicode_ci
- Tabla de colación: utf8mb_unicode_ci
- campo, varchar, el cotejo: utf8mb_unicode_ci
instalación de PHP:
mysql_query("SET CHARACTER SET utf8mb4");
mysql_query("SET NAMES utf8mb4");
Los símbolos no mostró dentro del registro se muestran como signo de interrogación "?"
Muchas gracias Jake, voy a buscar en su dirección. En este momento estoy bastante seguro de que convertí los campos objetivo y la tabla en la colación correcta, pero debo perder algo. Voy a actualizar este tema. Gracias – Fabrizio
He verificado y tienes razón, los 3 bytes emoji están representados bien. Lo que extraño es dónde necesito cambiar la intercalación. El campo donde debo registrar el emoji tiene la intercalación utf8mb4_unicode_ci. La tabla que contiene ese campo tiene la intercalación utf8mb4_unicode_ci. En la configuración general (phpMyAdmin) veo que la intercalación de MySQL es utf8_general_ci y cuando intento cambiar a utf8mb4_unicode_ci, parece volver automáticamente a la configuración anterior. No sé si el problema es por esta razón. Seguiré buscando. – Fabrizio
@Fabrizio He escrito [una guía detallada sobre cómo actualizar de 'utf8' a' utf8mb4'] (http://mathiasbynens.be/notes/mysql-utf8mb4) - quizás te ayude. –