Chcę zapisać emotikony w bazie danych MySql i zdaję sobie sprawę, że trzy bajty Emoji są poprawnie zapisywane w bazie danych, ale emulatory 4-bajtowe zostały zapisane jako znaki zapytania. Wygląda na to, że w pełni przekonwertowałem utf8 na utf8mb4, ale nie wiem, czego dokładnie tu brakuje. Moja wersja MySQL 5.05.29, gdy robię SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
w MySQL powłoki, to pokazuje, co następuje:phpMyAdmin mysql zapisany Emoji jako znak zapytania
+--------------------------+--------------------+
| 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 |
+--------------------------+--------------------+
Teraz, dla celów testowania, mam tylko 1 bazę danych z tabeli 1 stworzonej przetestować Emotikon oszczędności. I stworzył bazę danych przez phpMyAdmin i stworzył tabelę poprzez MySql powłoki:
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;
i nadal nie działa (jeszcze znaki zapytania).
Jednak znalazłem coś interesującego, widzę znaki zapytania w phpMyAdmin, ale widzę ikonę emoji poprawnie w powłoce Mysql, jeśli wpisuję select * from test_emoji; jakieś pomysły?
Czy ktoś może pomóc?
Dzięki
Czy jesteś pewien, że twój klient (phpMyAdmin) rzeczywiście łączy się z serwerem przy użyciu zestawu znaków utf8mb4? Powtórz powyższe zapytanie z poziomu phpMyAdmin –
Cześć, Michel, dzięki za przypomnienie, zrozumiałem, że również mój myphpadmin w rzeczywistości wciąż używa utf8, dlatego nie widzę go na kliencie phpmyadmin, ale widzę go na powłoce MySQL . Mam jednak tutaj nowe pytanie. Przeczytaj ten post: http://stackoverflow.com/questions/14488503/ios-cannot-decode-emoji-unicode-in-json-format-correctly-and-emoji-icons-are-di – user2002692