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