背景

做微信开发的时候发现,微信支持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微信昵称或一些富文本编辑器中的表情问题,希望大家喜欢。

php 微信表情存储,轻松处理PHP开发中微信emoji表情mysql存储的问题相关推荐

  1. php处理emoji表情方法,PHP实战:3种方法轻松处理php开发中emoji表情的问题

    <PHP实战:3种方法轻松处理php开发中emoji表情的问题>要点: 本文介绍了PHP实战:3种方法轻松处理php开发中emoji表情的问题,希望对您有用.如果有疑问,可以联系我们. 背 ...

  2. MySQL中关于emoji表情的存储(微信登录出现登录失败【由于微信昵称字符问题】)

    MySQL中关于emoji表情的存储(微信登录出现登录失败[由于微信昵称字符问题]) 问题描述 解决方法 闲谈 问题描述 今天网站遇到用户说登录失败,查看日志发现是微信登录自动生成用户时,用户创建失败 ...

  3. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  4. 微信小程序中使用emoji表情相关说明

    本帖将聚合一些跟emoji表情有关的知识:前端传过来的昵称和备注信息一定要经过严格的正则表达式过滤,放置出现XSS等攻击,另外emoji字体表情库应该使用base64_encode编码,拿信息的时候b ...

  5. 前端显示微信消息中的emoji表情

    本人是微信公众号口开发,发现一些用户发送过来的消息含有emoji表情,然后存到数据库不能正确显示,读出来都是"口口口",这个问题问到我了,我是一个前端小白,对于这种问题,我是很苦恼 ...

  6. php转换emoji表情为图片输出小程序,微信小程序中使用emoji表情相关说明

    本帖将聚合一些跟emoji表情有关的知识:相关文章:"i爱记账" 小程序后端开发小结 第7条经验前端传过来的昵称和备注信息一定要经过严格的正则表达式过滤,放置出现XSS等攻击,另外 ...

  7. PHP处理微信中带Emoji表情的消息发送和接收(Unicode字符转码编码)

    在进行微信公众号开发者接入的时候,与用户的对话互动中,涉及到的文本信息不仅仅是文字那么简单,其中可能还会包含着各种表情字符,例如「emoji表情」. 百科:  Emoji 由于微信接口中对于emoji ...

  8. mysql存储emoji表情_MySQL中支持emoji表情的存储

    由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

  9. mysql存储ios表情_MySQL中支持emoji表情的存储

    由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

最新文章

  1. nginx 访问控制之deny allow
  2. pixel android8,谷歌Pixel 2更多信息:安卓8.1
  3. intellij远程调试_IntelliJ中的远程调试Wildfly应用程序
  4. Linux统一编程接口,restful接口设计规范总结
  5. RAID简介[zz]
  6. 用Ultra ISO制作启动U盘装系统
  7. 51单片机LCD12864程序移植到STM32F103C
  8. Setup Factory 9 Trial使用
  9. 数字信号处理-基础一
  10. java c/s网络聊天室,基于c-s网络聊天室报告.doc
  11. [虚拟机][linux]虚拟机VMware桥接模式无法上网问题
  12. 科密指纹考勤机B329采集
  13. 十个python热门项目,你知道几个
  14. 爬虫:Scrapy分类爬取苏宁易购书城
  15. 智慧政务解决方案-最新全套文件
  16. 如何清除MS office 2016 软件的打开记录
  17. 计算机组成原理----计算机的基本组成
  18. 多线程:线程同步与死锁(卖票案例)、线程通信、生产者与消费者
  19. 关于新工作展望及辞职的烦恼
  20. 电阻式触摸屏的驱动程序和详细注释

热门文章

  1. Xdebug中文文档-基础特性
  2. SDS(Spoken Dialogue System) 对话系统
  3. 通过挑土豆—我学会了如何区分JS数组的遍历方法
  4. ffmpeg Unknown encoder ‘libx264‘
  5. 云原生相关介绍,25 个点很全面
  6. 【数据说第九期】如何分析用户行为数据,来驱动业务增长?
  7. 稳压集成块LM78XX LM79XX
  8. golang 将kafka的offset置为最新
  9. layui 使用文档总结
  10. 【论文阅读】7-Discovering Structural Regularity in 3D Geometry