允许MySQL以utf8mb4编码存储emojis?

时间:2016-08-01 12:30:19

标签: php mysql database emoji utf8mb4

我想在我的mysql数据库中存储emojis(android或iphone),我尝试了许多教程和SO帖子,在互联网上如下:

How to insert utf-8 mb4 character(emoji in ios5) in mysql?

http://andy-carter.com/blog/saving-emoticons-unicode-from-twitter-to-a-mysql-database

MySQL utf8mb4, Errors when saving Emojis

我改变了那些所需要的东西。我现在有以下mysql配置:

character_set_client:utf8mb4

character_set_connection:utf8mb4

character_set_database:utf8mb4

character_set_filesystem:binary

character_set_results:utf8mb4

character_set_server:latin1

character_set_system:utf8

collat​​ion_connection:utf8mb4_unicode_ci

collat​​ion_database:utf8mb4_unicode_ci

collat​​ion_server:latin1_swedish_ci

但是我仍然无法在我的mysql数据库上存储4位emojis,我有#34; ????",这非常烦人。

请帮忙。

1 个答案:

答案 0 :(得分:2)

“4字节”,而不是“4位”。

列/表必须为CHARACTER SET utf8mb4

<meta charset="UTF8">,而不是utf8mb4 - 这是与HTML,而不是MySQL。在MySQL之外,正确的名称是“UTF-8”或“UTF8”; utf8mb4是一个MySQL kludge。

请参阅https://stackoverflow.com/a/38363567/1766831

中的“问号”

正好有4个问号表示该列未更改。使用ALTER TABLE ... CONVERT TO ...;