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

时间:2016-04-20 14:28:47

标签: 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"

我在网上搜索并阅读了很多答案,包括: MySQL utf8mb4, Errors when saving EmojisMySQL utf8mb4, Errors when saving Emojishttps://mathiasbynens.be/notes/mysql-utf8mb4#character-setshttp://www.java2s.com/Tutorial/MySQL/0080__Table/charactersetsystem.htm但没有任何效果!!

我有不同的问题:

这是mydb info:

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_set_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 个答案:

答案 0 :(得分:2)

源代码中的第1行或第2行(在代码中使用字符串utf8编码:# - - 编码:utf-8 - -

您的列/表必须为<table> <tbody> <tr> <td> <div style="text-align: left;"> This needs to be kept </div> </td> </tr> </tbody> </table> <table> <tbody> <tr> <td> <div style="text-align: left;"> This needs to be kept </div> </td> </tr> </tbody> </table>

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

CHARACTER SET utf8mb4可能是必要的。

Django需要self.query('SET NAMES utf8mb4') - 我不知道那应该是'utf8mb4`。

参考文献:
https://code.djangoproject.com/ticket/18392
http://mysql.rjweb.org/doc.php/charcoll#python