MySQL支持emoji表情符号,首先需要MySQL版本大于5.5.3,且字符集需要设置为utf8mb4字符集。这是由于mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8的编码不支持存储emoji表情。
将Mysql的编码从utf8转换成utf8mb4的具体方法如下:
(1) 修改mysql的配置文件my.cnf ;
[client]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=’SET NAMES utf8mb4'
[mysql]
default-character-set=utf8mb4
修改完成,wq保存退出。
(2) 修改字符集;
a, 修改字段的字符集:
ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
b, 修改表的字符集:
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
c, 修改库的字符集:
ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
(3) 查看修改后的字符集,不需要重启数据库。
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| 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 |
+--------------------------+--------------------+
rows in set (0.00 sec)