Thinkphp环境下,Mysql存入Emoji
Thinkphp默认的utf8不支持Emoji,因为Emoji是unicode编码,每个Emoji占4个字节,只要把数据表和列的编码都改为utf8mb4即可。
Thinkphp默认的utf8不支持Emoji,因为Emoji是unicode编码,每个Emoji占4个字节,如下:
1、确保mysql版本大于5.3.3(支持utf8mb4)
2、把表字符集改为utf8mb4, 排列顺序为utf8mb4_general_ci
3、把字段字符集改为utf8mb4, 排列顺序为utf8mb4_general_ci
utf8mb4是utf8的延伸并向下兼容,记得备份。
有部分emoji还是显示为问号,参考下面:
修改数据连接配置 '数据库编码' 为:'DB_CHARSET'=> 'utf8mb4',
字段字符集 也需修改为 uf8mb4
才能正常存储!!!!