在mysql数据库中保存表情符号

在mysql数据库中保存表情符号,mysql,unicode,utf-8,emoji,utf8mb4,Mysql,Unicode,Utf 8,Emoji,Utf8mb4,我试图在mysql数据库上保存一些数据,输入包含如下表情符号:'\U0001f60a\U0001f48d',我遇到以下错误: 1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x8A\\xF0\\x9F...' for column 'caption' at row 1" 我在网上搜索了很多答案,包括: 或者什么都没用 我有不同的问题: 以下是mydb信息: mysql> SHOW VARIABLES WHERE Variable_name

我试图在mysql数据库上保存一些数据,输入包含如下表情符号:'\U0001f60a\U0001f48d',我遇到以下错误:

1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x8A\\xF0\\x9F...' for column 'caption' at row 1"
我在网上搜索了很多答案,包括: 或者什么都没用

我有不同的问题:

以下是mydb信息:

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     | utf8               |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_general_ci |
| collation_database       | utf8mb4_general_ci |
| collation_server         | utf8_general_ci    |
+--------------------------+--------------------+
10 rows in set (0.00 sec)
我试图将
character\u set\u server
值更改为
utf8mb4

mysql>SET character_set_server = utf8mb4
Query OK, 0 rows affected (0.00 sec)
但是当重新启动mysqld时,一切都会恢复

我也没有任何
/etc/my.cnf
文件,而是编辑了
/etc/mysql/my.cnf
文件

我该怎么办?
如何在数据库中保存表情符号文件?

源代码的第1行或第2行(要在代码utf8中对文字进行编码:#--编码:utf-8--

您的列/表需要是
字符集utf8mb4

python包“MySQL-python”版本至少需要为1.2.5才能处理utf8mb4

self.query('SET NAMES utf8mb4')
可能是必需的

Django需要
client\u编码:“UTF8”
——我不知道这是否应该是“utf8mb4”

参考文献:


嗯,是的,这些设置会恢复。当你连接到数据库时,你当然需要设置连接编码。你到底是如何尝试插入什么值的?我正在开发一个Django应用程序,并使用python
Django.db.backends.mysql
作为连接到mysql服务器的引擎。你能找到解决方案吗上?实际上我无法编辑现有数据库,但当我使用utf8mb4排序规则创建新数据库时,一切正常。警告。这将在Windows上导致错误: