我阅读了一堆关于如何在 MySQL 中实现表情符号支持的文章,但没有任何效果。
我的.cnf:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character-set-client-handshake = FALSE
[mysql]
default-character-set = utf8mb4
测试:
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 |
+--------------------------+--------------------+
MyISAM 和 InnoDB 我都试过了。
这是怎么回事?
最佳答案
尝试:
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.11 |
+-----------+
1 row in set (0.00 sec)
mysql> SET NAMES utf8mb4;
Query OK, 0 rows affected (0.00 sec)
mysql> DROP TABLE IF EXISTS `tbl_test`;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE IF NOT EXISTS `tbl_test` (
-> `message` VARCHAR(100) DEFAULT NULL
-> ) DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO `tbl_test` (`message`)
-> VALUES ('Hello 🐬');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT `message`
-> FROM `tbl_test`;
+------------+
| message |
+------------+
| Hello 🐬 |
+------------+
1 row in set (0.00 sec)
参见 db-fiddle .
更新
使用 Workbench 6.3 社区:
关于mysql - MySQL 中的表情符号支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748683/