Hos*_*zan 5 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"
Run Code Online (Sandbox Code Playgroud)
我在网上搜索并阅读了很多答案,包括: MySQL utf8mb4,保存表情符号时出错或MySQL utf8mb4,保存表情符号时出错或https://mathiasbynens.be/notes/mysql-utf8mb4#character-sets或http:/ /www.java2s.com/Tutorial/MySQL/0080__Table/charactersetsystem.htm但没有任何效果!
我有不同的问题:
这是 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)
Run Code Online (Sandbox Code Playgroud)
我试图将character_set_server值更改utf8mb4为
mysql>SET character_set_server = utf8mb4
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
但重启后mysqld一切又恢复了!
/etc/my.cnf 我也没有任何文件,而是编辑了/etc/mysql/my.cnf文件。
我应该怎么办?如何将表情符号文件保存到我的数据库中?
源代码中的第一行或第二行(在代码中包含文字 utf8 编码:# - - 编码:utf-8 - -
您的列/表需要是CHARACTER SET utf8mb4
python 包“MySQL-python”版本至少需要为 1.2.5 才能处理 utf8mb4。
self.query('SET NAMES utf8mb4')可能有必要。
Django 需要client_encoding: 'UTF8'——我不知道是否应该是“utf8mb4”。
参考文献:
https://code.djangoproject.com/ticket/18392
http://mysql.rjweb.org/doc.php/charcoll#python
| 归档时间: |
|
| 查看次数: |
7991 次 |
| 最近记录: |