emoji 插入数据库报错与存储成?问题

报错: 1366, "Incorrect string value: '\\xF0\\x9F\\x9A\\xA8

 

是因为mysql不能识别4个字节的utf8编码的字符,抛出了异常,这应该也是问题的根源。☺、��、类似于这种4个字节,将对应字符类型换成将对应的数据类型改为utf8mb4类型,同时连接类型也要改成utf8mb4_general_ci.

 

解决办法
注意:直接在navicat中修改表结构的字符集和数据库的字符集都不能生效 (至少我的不行)

通过cmd进入mysql,找到表结构,修改表结构字符集为utf8mb4

使用命令行: alter table 表名 convert to character set utf8mb4;

 

再添加连接串属性:

'OPTIONS': {'charset': 'utf8mb4'},
被以下专题收入,发现更多相似内容
PHP 数据库
推荐阅读更多精彩内容