php mysql 存储 IOS Emoji表情失败和乱码问题

  首先是字符集的问题,mysql字符集大多数使用的是utf8,需要把字符集更换成utf8mb4,因为UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,utf8mb4则扩展到一个字符最多能有4字节,并且兼容utf8

  在mysql终端查看下mysql当前版本所支持的字符集,mysql 5.5.3版本上才会支持utf8mb4

  1.修改my.cnf文件

  [client]  

  default-character-set = utf8mb4  

  [mysql]  

  default-character-set = utf8mb4  

  [mysqld]  

  character-set-client-handshake = FALSE  

  character-set-server = utf8mb4  

  collation-server = utf8mb4_unicode_ci  

  init_connect='SET NAMES utf8mb4'

  2.更改连接数据库编码方式(TP框架在config文件中修改)

  3.更改数据库编码方式

  4.更改数据表编码方式

  5.更改字段编码方式

原文地址:https://www.cnblogs.com/daxuan/p/6780420.html