Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用utf8mb4进行编码_Python_Mysql_Utf 8 - Fatal编程技术网

如何在python中使用utf8mb4进行编码

如何在python中使用utf8mb4进行编码,python,mysql,utf-8,Python,Mysql,Utf 8,如何在Python中使用utf8mb4正确编码 我目前正在尝试将我的数据从Parse迁移到我自己的MySQL数据库。对于phpmyadmin上的一个字段,我使用utf8mb4_unicode_ci作为排序规则。但是,在上载unicode格式的表情符号('\xF0\x9F\x8C\x83')时,由于以下原因: message = MySQLdb.escape_string(unicode(xstr(data.get('message'))).encode('utf-8')) 其中xstr()是:

如何在Python中使用utf8mb4正确编码

我目前正在尝试将我的数据从Parse迁移到我自己的MySQL数据库。对于phpmyadmin上的一个字段,我使用utf8mb4_unicode_ci作为排序规则。但是,在上载unicode格式的表情符号('\xF0\x9F\x8C\x83')时,由于以下原因:

message = MySQLdb.escape_string(unicode(xstr(data.get('message'))).encode('utf-8'))
其中xstr()是:

但是,我得到一个错误:

Warning: Incorrect string value: '\xF0\x9F\x8C\x83' for column 'message' at row 1...

我也尝试过不使用.encode('utf-8')、不使用unicode()等等。似乎所有的组合都是如此。我现在想我需要用utf8mb4编码表情符号字符串-有人知道怎么做吗

你为什么要编码?@IgnacioVazquez Abrams因为ut8mb4_unicode_ci排序规则-如果我不这样做,我会得到
UnicodeCodeerror:“ascii”编解码器无法对位置0-1的字符进行编码
你是否遵循了这里提到的所有步骤:?我不是这方面的专家,但我认为base64是一种更容易存储表情的方法。你能确切地说明是什么调用产生了错误吗?mysql调用utf8mb4实际上只是utf8-出于历史原因,mysql调用有效utf8字节序列utf8的子集(mysql utf8仅使用三个字节,但只能表示BMP)。这种问题即使在完全访问代码的情况下也很难诊断,更不用说部分信息了。还要注意,排序规则和字符集不是完全一样的。检查该列的字符集-我总是要用谷歌搜索到底如何看到这一点,但这似乎是一个很好的答案。
Warning: Incorrect string value: '\xF0\x9F\x8C\x83' for column 'message' at row 1...