django,mysql存储emoji表情,utf8mb4

在使用Django 1.6和MySQL 5.5.22开发时遇到错误,无法存储iOS emoji。问题在于emoji表情需要4字节的utf8mb4编码,而默认的utf8只支持3字节。解决方案包括:1) 修改MySQL配置文件以支持utf8mb4;2) 创建数据库时指定charset为utf8mb4和collate为utf8mb4_unicode_ci;3) 确保Django连接数据库时使用utf8mb4。实施这些步骤后,成功存储并正常显示emoji,适用于iOS和Android设备。
摘要由CSDN通过智能技术生成

今天在做后台的时候发现一个错误:

Incorrect string value: '\\xF0\\x9F\\x90\\xA8' for column 'signature' at row 1


发现是参数里面是一个iOS的表情,也就是系统自带的emoji表情。

后台用的是django 1.6,数据库用的是Mysql 5.5.22,缓存用的是redis。


上网了解了一下emoji表情,原来一般的字符包括中文用utf8的话,mysql是用3个字节去存储的,而emoji表情要用4个字节的utf8,也就是utf8mb4格式。


首先更改mysql的数据编码,修改mysql的配置文件:  /etc/mysql/my.cnf 添加:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值