mysql存入emoji表情现在为?

php中文网
发布: 2016-06-23 13:44:28
原创
1538人浏览过

mysql存入emoji表情现在为???.按网上的说法把mysql的字符集改为utf8mb4,还是无效,显示为乱码。。请问有人遇到过吗?

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图

回复讨论(解决方案)

emoji 表情是扩展的 utf-16 编码
你可以贴出含有 emoji表情 的文字的 base64 编码串
看看能否帮你解决问题

emoji 表情是扩展的 utf-16 编码
你可以贴出含有 emoji表情 的文字的 base64 编码串
看看能否帮你解决问题


这个就是表情base64位保存后的数据。8J+YhPCfmIM= 。版*烦看看!.现在好多应用都支持这个表情输入,就是不知道怎么保存的。

应该说改用 utf8mb4 字符集就可以了,不知道你为什么不行
考虑到文字中 emoji 字符并不多,可以用正则替换一下在存入

$text = base64_decode('8J+YhPCfmIM=');echo $text = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '@E' . base64_encode($r[0]);}, $text);
登录后复制
@E8J+YhA==@E8J+Ygw==

都会后逆转换一下就可以了
$s = preg_replace_callback('/@E(.{6}==)/', function($r) {return base64_decode($r[1]);}, '@E8J+YhA==@E8J+Ygw==');var_dump(base64_decode('8J+YhPCfmIM=') == $s);
登录后复制
bool(true)

应该说改用 utf8mb4 字符集就可以了,不知道你为什么不行
考虑到文字中 emoji 字符并不多,可以用正则替换一下在存入

$text = base64_decode('8J+YhPCfmIM=');echo $text = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '@E' . base64_encode($r[0]);}, $text);
登录后复制
@E8J+YhA==@E8J+Ygw==

都会后逆转换一下就可以了
$s = preg_replace_callback('/@E(.{6}==)/', function($r) {return base64_decode($r[1]);}, '@E8J+YhA==@E8J+Ygw==');var_dump(base64_decode('8J+YhPCfmIM=') == $s);
登录后复制
bool(true)


是啊,很郁闷。网上都说只要设置为utf8mb4 就行,可我的就不行。mysql的版本是用的是5.6的。。。。,wampserver环境。会不会是环境问题?

楼主,我也遇到相同的问题了,请问你最后怎么解决的?

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号