轻松处理PHP开发中微信emoji表情mysql存储的问题
背景
做微信开发的时候发现,微信支持emoji表情做昵称,结果考虑不周
Mysql表设计时,都是用UTF8字符集的。把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串。有的根本插入是失败,原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。
这要怎么办呢?
第一种方案:
如果你已经有很多数据了就不要修改字符集了因为会造成乱码情况你可以干掉他或者表情替换成***
$result['nickname'] = preg_replace('/\\\u[a-z0-9]{4}/', '*', userTextEncode($result['nickname']));
function userTextEncode($str){
if(!is_string($str))return $str;
if(!$str || $str=='undefined')return '';
$text = json_encode($str); //暴露出unicode
$text = preg_replace_callback("/(\\\u[ed][0-9a-f]{3})/i",function($str){
return addslashes($str[0]);
},$text); //将emoji的unicode留下,其他不动,这里的正则比原答案增加了d,因为我发现我很多emoji实际上是\ud开头的,反而暂时没发现有\ue开头。
return json_decode($text);
}
第二种方案:
如果你还在测试阶段并没有真正产品数据就果断转化mysql字符集为:utf8mb4字符集,但是要求你的mysql版本>=5.5.3,你大可直接将utf8直接升级为utf8mb4字符集
这种4字节的utf8编码可完美兼容旧的3字节utf8字符集,并且可以直接存储emoji表情,是最好的解决方案,至于字节增大带来的性能损耗,可以忽略不计。
以上方案就可解决PHP微信昵称或一些富文本编辑器中的表情问题,希望大家喜欢。
转载于:https://www.cnblogs.com/qianxiaofeng/p/8057952.html
轻松处理PHP开发中微信emoji表情mysql存储的问题相关推荐
- php 微信表情存储,轻松处理PHP开发中微信emoji表情mysql存储的问题
背景 做微信开发的时候发现,微信支持emoji表情做昵称,结果考虑不周 Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.有的 ...
- MySQL中关于emoji表情的存储(微信登录出现登录失败【由于微信昵称字符问题】)
MySQL中关于emoji表情的存储(微信登录出现登录失败[由于微信昵称字符问题]) 问题描述 解决方法 闲谈 问题描述 今天网站遇到用户说登录失败,查看日志发现是微信登录自动生成用户时,用户创建失败 ...
- mysql存储emoji表情_MySQL中支持emoji表情的存储
由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...
- mysql存储ios表情_MySQL中支持emoji表情的存储
由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...
- php处理emoji表情方法,PHP实战:3种方法轻松处理php开发中emoji表情的问题
<PHP实战:3种方法轻松处理php开发中emoji表情的问题>要点: 本文介绍了PHP实战:3种方法轻松处理php开发中emoji表情的问题,希望对您有用.如果有疑问,可以联系我们. 背 ...
- 微信小程序中使用emoji表情相关说明
本帖将聚合一些跟emoji表情有关的知识:前端传过来的昵称和备注信息一定要经过严格的正则表达式过滤,放置出现XSS等攻击,另外emoji字体表情库应该使用base64_encode编码,拿信息的时候b ...
- 前端显示微信消息中的emoji表情
本人是微信公众号口开发,发现一些用户发送过来的消息含有emoji表情,然后存到数据库不能正确显示,读出来都是"口口口",这个问题问到我了,我是一个前端小白,对于这种问题,我是很苦恼 ...
- php转换emoji表情为图片输出小程序,微信小程序中使用emoji表情相关说明
本帖将聚合一些跟emoji表情有关的知识:相关文章:"i爱记账" 小程序后端开发小结 第7条经验前端传过来的昵称和备注信息一定要经过严格的正则表达式过滤,放置出现XSS等攻击,另外 ...
- PHP处理微信中带Emoji表情的消息发送和接收(Unicode字符转码编码)
在进行微信公众号开发者接入的时候,与用户的对话互动中,涉及到的文本信息不仅仅是文字那么简单,其中可能还会包含着各种表情字符,例如「emoji表情」. 百科: Emoji 由于微信接口中对于emoji ...
- php emoji表情,PHP处理字符中的emoji表情
业务场景,开发的小程序和APP需要类似朋友圈一样的功能,然后好多客户都需要发带emoji表情的文字 所以,这里说一下php如何处理字符中的emoji表情 utf-8 编码的 emoji 表情或者某些特 ...
最新文章
- C++11中头文件chrono的使用
- matlab中patch命令_matlab 放大平移图形是超出边界问题的处理
- numpy 点乘_Numpy入门指南
- python多线程爬虫实例-python多线程爬虫实例讲解
- 计算机制图国家规范,竣工图绘制相关国家规范
- c++ 获取数组的长度
- 【BZOJ1901】Zju2112 Dynamic Rankings 主席树+树状数组
- Kubernetes迁移指北 | 凌云时刻
- 【数学模拟卷总结】2023李林六套卷数学二第二套
- win10 LTSC无损升级 win11专业版 记录
- adb 连接某个wifi_adb通过wifi连接android设备的方法(根据网络中大神的提示加上自我摸索得到):...
- word中批量修改图片大小的两个方法
- 实验室设备管理系统(C语言实现)
- 智能语音机器人的实现机制
- java 跳跃表_你真的了解跳跃表吗
- python研究生导师_导师想要什么样的心理学研究生?
- linux手动连接网络打印机驱动_中兴新支点Linux操作系统添加网络打印机的方法...
- 首屏渲染优化性能优化
- 【小程序】拼多多领劵小程序修复版分享
- 数据仓库之维度表和事实表
热门文章
- AWS环境搭建(六):Linux上部署wowza,并配置ssl证书
- ZZULIOJ/python1006: 求等差数列的和
- 计算机是通过计算器发明的吗,计算器是什么时候发明的
- mt7620a上wifi中继的实现
- 深入理解FT,DTFT,DFT 之间的关系
- 2022 数学建模B题 高教社杯 含半成品论文 部分代码 全部数学模型 和全套思路
- 双绞线与计算机连接的接口是,网线接口
- hmcl启动器找不到java_HMCL启动器安装1.16.3版本出现以下问题
- 施耐德 m340 编程手册_工控安全研究系列(一)施耐德PLC 140CPU 65150
- 应用时间序列案例-基于R语言