emoji mysql 乱码 php_MYSQL utf8mb4 插入emoji表情乱码

博客讨论了在MySQL中遇到的utf8mb4字符串集问题,特别是关于存储Emoji表情时出现的乱码问题。文章指出,utf8mb4相较于utf8能正确存储4字节的Emoji,但数据库客户端可能不支持显示。解决方案包括检查客户端配置,确保其支持utf8mb4,并使用`set_names`设置字符集。同时,建议在前端展示时确认支持Emoji。
摘要由CSDN通过智能技术生成

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

表结构如下:

bVzj6b

如下代码:

$db = new mysqli('x', 'xxx', 'xxxxx');

$db->select_db('xxx');

$db->set_charset('utf8mb4');

//这里是一个emoji表情

$contents = <

print_r($db->error_list);

echo "\t\n";

exit();

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

bVzj0u

求解决。

回复内容:

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

表结构如下:

bVzj6b

如下代码:

$db = new mysqli('x', 'xxx', 'xxxxx');

$db->select_db('xxx');

$db->set_charset('utf8mb4');

//这里是一个emoji表情

$contents = <

print_r($db->error_list);

echo "\t\n";

exit();

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

bVzj0u

求解决。

这样是对的。

说下前提,utf8mb4和utf8的区别就是utf8才用3位字节码存储数据,而utf8mb4用4位字节码存储数据。

emoji表情是4位字节码通过前段转义出来的,它本身是不可读的字符,所以在数据库客户端中会显示“?”。

在前端支持emoji的地方就会显示emoji表情。

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值