EmojiをMySqlデータベースに保存したいのですが、3バイトの絵文字がデータベースに正しく保存されていますが、4バイトの絵文字が疑問符として保存されています。私はutf8をutf8mb4に完全に変換したようですが、ここでは正確に何が欠けているのか分かりません。私は、MySQLシェルでSHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
を行うときに私のMySQLのバージョンは、5.5.29ですが、それは次のことを示していますphpMyAdmin mysqlが絵文字として保存されました
+--------------------------+--------------------+
| 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 |
+--------------------------+--------------------+
さて、テスト目的のために、私は唯一の絵文字省をテストするために作成された1台で1つのデータベースを持っています。 (まだ疑問符)
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;
、それはまだ動作しません:私は、phpMyAdminのを介してデータベースを作成し、およびMySQLのシェルを介してテーブルを作成しました。
しかし、私はphpMyAdminで疑問符を見ていますが、select * from test_emojiと入力すると、Mysqlシェルでemojiアイコンが正しく表示されます。何か案は?
誰か助けてもらえますか?
おかげ
クライアント(phpMyAdmin)が実際にutf8mb4文字セットを使用してサーバーに接続してもよろしいですか? phpMyAdminの中から上記の質問を繰り返してください –
こんにちは、Michel、思い出してくれてありがとう、myphpadminは実際にはまだutf8を使用しています。そのためphpmyadminクライアントでは表示できませんが、MySQLシェルで見ることができます。しかし、ここでは新しい質問があります。この記事を読んでください:http://stackoverflow.com/questions/14488503/ios-cannot-decode-emoji-unicode-in-json-format-correctly-and-emoji-icons-are-di – user2002692