mysql支持emoji解决办法

时间:2021-08-31 17:09:05

mysql显示不了emoji表情或者显示??,原因这里不解释,直接说解决办法。(主要就是修改utf8mb4)

1.修改表

ALTER TABLE `TABLE_NAME` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2.修改字段

ALTER TABLE `TABLE_NAME`MODIFY COLUMN `COLUMN_NAME`  varchar CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3.修改客户端连接时charset

例: 在thinkPHP中,配置链接数据库参数时,'DB_CHARSET' => 'utf8mb4'

做到这里,基本已经可以显示emoji表情了。如果不行 接着下面。

4.修改数据库环境

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_general_ci     |
| collation_database           | utf8mb4_general_ci     |
| collation_server               | utf8mb4_general_ci      |
+-----------------------------+——————---—————+
修改例句:
mysql>    set character_set_client=utf8mb4;
修改成如上表模样就可以了。
如果还不行,请重新编译mysql,不过楼主没试过久不说了。。
================================================================
其实最好的方法是在建库建表时就设计好
CREATE DATABASE a DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci 

CREATE TABLE b () ENING=InnoDB CHARACTER utf8mb4 COLLATE utf8mb4_general_ci