PHP Mysql字符集utf8mb4支持Emoji表情

Posted 小时刻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Mysql字符集utf8mb4支持Emoji表情相关的知识,希望对你有一定的参考价值。

项目开发中经常会遇到用户在评论或者发表文章的时候会打一些表情在里面,如果我们在开发中不去做一些处理的话,表情会出不来的,甚至是报错,下面简单介绍处理方式.
原文地址:
小时刻个人博客:http://small.aiweimeng.top/index.php/archives/Emoji.html

 

项目中评论或者文章中写入表情符号时,php报错,或者出来时一些????。这是为什么呢?

下面说一下mysql中的字符集:

mysql数据库表用的utf-8字符集也就是3字节,但emoji表情是4字节,导致无法insert.

怎么让mysql支持Emoij表情呢?

我们可以设置mysql的对应的表字符集为```utf8mb4```,排序规则改为```utf8mb4_unicode_ci```,记得修改之后重启mysql。

好了问题来了,我们修改完字符集后,进行测试。我想应该不会有问题,insert能写入了,
但是出来的数据是```????```,why?

项目开的时候数据库链接字符集默认是```utf8```,好了找到问题了,然后修改字符集为```utf8mb4```,O(∩_∩)O,
在进行测试,ok,完美解决了。





以上是关于PHP Mysql字符集utf8mb4支持Emoji表情的主要内容,如果未能解决你的问题,请参考以下文章

nodejs,javascript过滤emoj表情

mysql5.6的 utf8mb4字符集乱码问题

mysql:设置字符集utf8mb4 支持emoji字符

android emoji可以存入MYSQL,但是IOS EMOJI表情存入不成功,会报错,mysql已经支持utf8mb4

升级MySQL支持utf8mb4字符集详细步骤

php+mysql 解决emoji问题