MySQL 默认编码一般只支持 1-3 个字节,而 emoji 是 4 个字节,需要将字段编码改为 utf8mb4 ,并且 utf8mb4 是兼容 utf8 的。

网上教程

网上教程一般都需要修改 mysql 的配置文件(数据库连接的默认编码)、数据库编码、表编码、字段编码 都设置为 utf8mb4。

按需求更改

如果你只是一个表的一个字段需要储存 Emoji,其实只需要修改这个字段的编码为 utf8mb4 即可

注意数据库连接

如果在 mysql 的配置文件已经设置了连接的默认编码,需要把代码里的连接设置去掉

如果仅按需求更改字段的编码,其它地方配置没有修改,需要在代码里设置连接编码为 utf8mb4。以   PHP 代码为例

1
mysqli_set_charset$con ,  'utf8mb4' );   //有在mysql的配置文件已经设置了连接的默认编码,需要把代码里的连接设置去掉

编辑文章✏