首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将unicode保存到数据库

问将unicode保存到数据库
EN

Stack Overflow用户
提问于 2013-01-09 19:00:07
回答 1查看 426关注 0票数 0

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

代码语言:javascript
复制
m.cr1 = u"\U0001F3C9" # cr1 is models.CharField(max_length=50)
m.save()

我得到了错误

代码语言:javascript
复制
Warning: Incorrect string value: '\xF0\x9F\x8F\x89' for column 'cr1' at row 1

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

我猜这与这是32位unicode的事实有关。

实际上,我只是想检测这种情况,也许可以忽略不好的字符。

有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-09 19:57:56

MySQL utf8不是真正的UTF-8,而是一个修改后的版本,只支持直到0xFFFF的代码点。您正在尝试使用MySQL utf8中不包含的代码点(0x1F3C9 > 0xFFFF)。

您需要使用相对较新的MySQL版本,并将utf8更改为utf8mb4。到处都是。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14233764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档