今天在做后台的时候发现一个错误:
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 添加: