这是因为:移动端的emoji微信表情符號号是4个字节而mysql的utf8编码最多3个字节,所以插入不进去
1:让用户都主流些去掉那些乱七八糟的表情。。不大可能
2:过滤掉非主流字符。不太人性化
3:将mysql的编码从utf8转换成utf8mb4,可以从根本上解决问题具体如何转换参考如下文章:
4:我的解决方法:由于数据库已经建好了,有了大量正式数据安全起见,我是通过转码的方式解决的入库前encode一下,出库前decode一下虽然略显繁琐,但是问题也能解决
通过这件倳,给我的启示:在移动互联网迅速发展的今天为了避免emoji表情入库失败问题,涉及移动相关的数据库在建表之前建议都采用utf8mb4字符集