MYSQL utf8mb4 插入emoji表情乱码

关于MYSQL utf8mb4字符串集的问题。

表结构如下:

如下代码:

$db = new mysqlix, xxx, xxxxx;
$db->select_dbxxx;
$db->set_charsetutf8mb4; //这里是一个emoji表情
$contents = <<<EOT
"ud83dudca5"
EOT; $contents = json_decode$contents. "hello";
echo $contents, " "; $sql = "INSERT INTO `utf8mb4``contents` VALUES$contents";
echo $sql, "	","
";
$db->query$sql;
print_r$db->error_list;
echo " ";
exit;

但是入库后,是一个? 如下图:

求解决。

这样是对的。
说下前提,utf8mb4和utf8的区别就是utf8才用3位字节码存储数据,而utf8mb4用4位字节码存储数据。
emoji表情是4位字节码通过前段转义出来的,它本身是不可读的字符,所以在数据库客户端中会显示“?”。
在前端支持emoji的地方就会显示emoji表情。

确定下客户端是否支持utf8mb4,最好使用的时候 set names下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注