Maison > Article > développement back-end > MYSQL utf8mb4 插入emoji表情乱码
关于MYSQL utf8mb4字符串集的问题。
表结构如下:
如下代码:
<code class="php">$db = new mysqli('x', 'xxx', 'xxxxx'); $db->select_db('xxx'); $db->set_charset('utf8mb4'); //这里是一个emoji表情 $contents = query($sql); print_r($db->error_list); echo "\t\n"; exit();</code>
但是入库后,是一个?
如下图:
求解决。
关于MYSQL utf8mb4字符串集的问题。
表结构如下:
如下代码:
<code class="php">$db = new mysqli('x', 'xxx', 'xxxxx'); $db->select_db('xxx'); $db->set_charset('utf8mb4'); //这里是一个emoji表情 $contents = query($sql); print_r($db->error_list); echo "\t\n"; exit();</code>
但是入库后,是一个?
如下图:
求解决。
这样是对的。
说下前提,utf8mb4和utf8的区别就是utf8才用3位字节码存储数据,而utf8mb4用4位字节码存储数据。
emoji表情是4位字节码通过前段转义出来的,它本身是不可读的字符,所以在数据库客户端中会显示“?”。
在前端支持emoji的地方就会显示emoji表情。
确定下客户端是否支持utf8mb4,最好使用的时候 set names下。