php保存emoji表情字符至mysql

这里只对保存到mysql中进行说明

Mysql版本要求:5.5.3以上,硬性要求,如若不是,请忽略下文。

emoji表情为四字节字符,直接保存写入数据库会报错或乱码。网上有各种不靠谱,改mysql默认编码、改数据库编码种种。。。

这里明确告诉各位看官,最小设置,只需要设置两项:

1、对应表相应字段排序(COLLATE)设置为utf8mb4

2、连接数据库编码(charset)设置为utf8mb4

关于第二步注意:

1、如果以前编码为:utf8,请放心修改,utf8为utf8mb4子集,无缝过度

2、php中设置编码为utf8mb4有个小坑,如果是采用Mysqli连接数据库,并且是通过mysqli::set_charset方法设置编码,是无法起作用的,只能通过query执行“SET NAMES utf8mb4”来达到目的

3、如果是通过PDO连接mysql,则通过设置连接参数达到设置编码目的:

“options” => array(
PDO::MYSQL_ATTR_INIT_COMMAND => ‘SET NAMES utf8mb4’
)