gpt4 book ai didi

python - 将 unicode 保存到数据库

转载 作者:行者123 更新时间:2023-11-29 08:39:31 25 4
gpt4 key购买 nike

我正在尝试使用 django 将以下字符串保存到 mysql 数据库(我从其他地方获取了该字符串)

m.cr1 = u"\U0001F3C9" # cr1 is models.CharField(max_length=50)
m.save()

我收到错误

Warning: Incorrect string value: '\xF0\x9F\x8F\x89' for column 'cr1' at row 1

我在这里查看了其他相关问题,并将mysql更改为utf8_unicode_ci,但这没有帮助。一般来说,我的代码可以正常使用 unicode,但在这种特定情况下则不行。

我猜这与这是 32 位 unicode 有关。

我实际上只是想检测这种情况,也许会忽略坏字符。

有什么想法吗?

谢谢

最佳答案

MySQL utf8 并不是真正的 UTF-8,而是一种修改版,仅支持最大 0xFFFF 的代码点。您正在尝试使用 MySQL utf8 中未包含的代码点 (0x1F3C9 > 0xFFFF)。

您需要有相对较新版本的MySQL,并将utf8更改为utf8mb4。无处不在。

连接需要为utf8mb4、排序规则、表/列等。 MySQL 上下文中任何 utf8 都是错误的,需要是 utf8mb4

关于python - 将 unicode 保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com