MySQL数据库保存emoji表情

何为emoji表情?这里的全是。

MySQL数据库为什么不能存储emoji?不是MySQL不能,而是MySQL的utf8编码不能!原来MySQL下的utf8编码每个字符占3个字节,而emoji占4个字节,所以存储不了。

解决方法:

1. 修改数据库编码(本人没有测试过,具体操作步骤自行百度)

2. 转义

转义的方法有好多种,我这里用的是json转换。

 1     /************ json存放 ******************/
 2     $content = "这是一个微信文本消息🌂☁    ☔";
 3     //一定要组成一个数组,要不然没法json编码
 4     $arr = array("content"=>$content);
 5     //!!! 一定要转义其中的斜线\字符
 6     $json = addslashes(json_encode($arr));
 7     //然后保存到数据库
 8     $sql = "insert into testEmoji(content) values('".$json."')";
 9     $db->exec($sql);
10     
11     $id = $db->lastInsertId();
12 
13     /************ json获取 *****************/
14     //查询数据表
15     $sql = "select content from testEmoji where id=" . $id;
16     $row = $db->query($sql)->fetch();
17     //json解码
18     $arr = json_decode($row['content'], true);
19     echo $arr['content'];

 

posted @ 2017-07-19 17:47  刘一二  阅读(671)  评论(0编辑  收藏  举报