Voglio salvare Emoji nel database MySql e mi rendo conto che tre byte Emoji è stato salvato correttamente nel database, ma le emoji a 4 byte sono state salvate come punti interrogativi. Sembra che abbia completamente convertito utf8 in utf8mb4, ma non so cosa manchi esattamente qui. La mia versione di MySQL è 5.5.29, quando faccio un SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
in guscio MySql, si evidenzia quanto segue:phpMyAdmin mysql ha salvato Emoji come Punto interrogativo
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
Ora, a scopo di test, ho solo 1 database con 1 tabella creata per testare risparmio emoji. Ho creato il database tramite phpMyAdmin, e ha creato la tabella con MySql shell:
CREATE TABLE `test_emojis` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
e ancora non funziona (ancora punti interrogativi).
Tuttavia, ho trovato qualcosa di interessante, vedo punti interrogativi in phpMyAdmin, ma posso vedere l'icona emoji correttamente nella shell Mysql se digito select * da test_emoji; qualche idea?
Qualcuno può aiutare per favore?
Grazie
Sei sicuro che il tuo client (phpMyAdmin) si connette effettivamente al server usando il set di caratteri utf8mb4? Ripeti la query sopra da phpMyAdmin –
Ciao, Michel, grazie per il tuo promemoria, ho capito anche io, il mio myphpadmin sta ancora usando utf8, ecco perché non riesco a vederlo sul client phpmyadmin, ma in grado di vederlo sulla shell MySQL . Tuttavia, sto facendo una nuova domanda qui. Si prega di leggere questo post: http://stackoverflow.com/questions/14488503/ios-cannot-decode-emoji-unicode-in-json-format-correctly-and-emoji-icons-are-di – user2002692