MYSQL utf8mb4 插入emoji表情乱码

WBOY
发布: 2016-08-04 09:21:14
原创
1577 人浏览过

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

表结构如下:

MYSQL utf8mb4 插入emoji表情乱码

如下代码:

<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 插入emoji表情乱码

求解决。

回复内容:

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

表结构如下:

MYSQL utf8mb4 插入emoji表情乱码

如下代码:

<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 插入emoji表情乱码

求解决。

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

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!