【发布时间】:2019-07-10 23:09:38
【问题描述】:
我有一些代码(在 django 服务器上)将 POST 请求中包含的 json 数据写入 mysql db。 有些请求包含特定的象形图,例如 ????要么 ????。 这些应该被写入文本字段,但会导致数据库错误。
处理请求的代码如下所示
json_data = json.loads(request.body.decode('utf-8'))
i = Event(event=json_data['event'], dt=parse(json_data['dt']),
object_id=json_data['object_id'], user_id=json_data['user_id'],
payload=json_data['payload'])
i.save()
db 排序规则当前设置为 uft8_general_ci。
返回的错误是“不正确的字符串值”。
将此类请求与其他请求一起保存到数据库的最佳做法是什么?
更新:通过将排序规则更改为 utf8mb4_general_ci,我现在可以直接将这些符号写入 db(通过 phpmyadmin),但 python 请求仍然没有运气。同样的错误。 django 方面的东西?
【问题讨论】:
-
您需要使用 UTF8MB4
-
请为相关表格提供
SHOW CREATE TABLE。我们需要验证有问题的列是CHARACTER SET utf8mb4,而不是utf8。
标签: python mysql django utf-8 collation