php - MYSQL utf8mb4 插入emoji表情乱码
本文介绍了php - MYSQL utf8mb4 插入emoji表情乱码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
关于MYSQL utf8mb4字符串集的问题。
表结构如下:
如下代码:
$db = new mysqli('x', 'xxx', 'xxxxx');
$db->select_db('xxx');
$db->set_charset('utf8mb4');
//这里是一个emoji表情
$contents = <<<EOT
"\ud83d\udca5"
EOT;
$contents = json_decode($contents). "hello";
echo $contents, "\t\n";
$sql = "INSERT INTO `utf8mb4`(`contents`) VALUES('$contents')";
echo $sql, "\t","\n";
$db->query($sql);
print_r($db->error_list);
echo "\t\n";
exit();
但是入库后,是一个?
如下图:
求解决。
解决方案
这样是对的。
说下前提,utf8mb4和utf8的区别就是utf8才用3位字节码存储数据,而utf8mb4用4位字节码存储数据。
emoji表情是4位字节码通过前段转义出来的,它本身是不可读的字符,所以在数据库客户端中会显示?。
在前端支持emoji的地方就会显示emoji表情。
这篇关于php - MYSQL utf8mb4 插入emoji表情乱码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文