Dopo aver letto tutti gli argomenti riguardanti le emoji su SO, sono costretto a chiedere aiuto. La domanda sembra essere quasi la stessa: ho ricevuto un'app per iPhone che invia tramite emoji PHP a MySQL DB, posso vedere alcuni simboli sui record, ad esempio "ombrello" e "nuvola" ma altri no (volto arrabbiato, volto sorridente e altro).Emoji su MySQL e PHP: perché alcuni simboli si altri no?
Perché alcuni si e altri no?
- MySQL fascicolazione: utf8mb_unicode_ci
- Tabella collazione: utf8mb_unicode_ci
- Campo, varchar, collazione: utf8mb_unicode_ci
configurazione PHP:
mysql_query("SET CHARACTER SET utf8mb4");
mysql_query("SET NAMES utf8mb4");
I simboli non mostrato nel record sono indicati come punto interrogativo "?"
Grazie mille Jake, cercherò nella tua direzione. Al momento sono abbastanza sicuro di aver convertito i campi obiettivo e il tavolo nella giusta fascicolazione, ma mi sono perso qualcosa. Aggiornerò questo argomento Grazie – Fabrizio
Ho verificato e hai ragione i 3 byte delle emoji sono rappresentati ok. Quello che mi manca è dove ho bisogno di cambiare le regole di confronto. Il campo in cui devo registrare l'emoji ha collation utf8mb4_unicode_ci. La tabella che contiene quel campo ha le regole di confronto utf8mb4_unicode_ci. Nelle Impostazioni generali (phpMyAdmin) vedo che le regole di confronto di MySQL sono utf8_general_ci e quando provo a passare a utf8mb4_unicode_ci sembra tornare automaticamente all'impostazione precedente. Non so se il problema è per questo motivo. Continuerò a cercare. – Fabrizio
@Fabrizio Ho scritto [una guida dettagliata su come aggiornare da 'utf8' a' utf8mb4'] (http://mathiasbynens.be/notes/mysql-utf8mb4) - forse ti aiuta. –