Almacenar y mostrar emojis en la aplicación de Android utilizando MySQL

Tengo una aplicación que habla con un servidor NodeJS a través de un socket, ese servidor está hablando con PHP a través de HTTP, y que PHP está usando MySQL.

Cuando bash insertar Emojis en un campo de texto y guardarlo en DB, cuando lo recupero veo “?”.

Si copio Emojis de la wikipedia (por ejemplo, ✒️ ❤️ 🀄️ 🈚️ ) y los ✒️ ❤️ 🀄️ 🈚️ a la base de datos, cuando los selecciono, se muestra ✒️ ❤️ ?️ ?️

Nota: El campo en DB es utf8mb4bin .

  • ¿Por qué no puedo almacenar emojis directamente desde mi dispositivo a DB?
  • ¿Por qué algunos emojis se muestran, mientras que otros no?

Nota : También probé PHP y MySQL, pero sin suerte.

    1.) Base de datos: Cambiar la colección predeterminada de la base de datos como ** utf8mb4 **.

    2) Tabla: Cambiar colección de tabla como ** JUEGO DE CARACTERES utf8mb4 COLLATE utf8mb4_bin **.

     Query : ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin 

    3) Código:

     insert into tablename (column1,column2,column3,column4,column5,column6,column7) values ('273','3','Hdhdhdh😜😀😊😃hzhzhzzhjzj 我爱你 ❌',49,1,'2016-09-13 08:02:29','2016-09-13 08:02:29') 

    4) Establecer utf8mb4 en la conexión de la base de datos:

      $database_connection = new mysqli($server, $user,$password,$database_name); $database_connection->set_charset("utf8mb4");