3种方法轻松处理php开发中emoji表情的问题
在PHP开发中轻松处理表情符号表达式的3种方法
更新时间: 2016年7月18日14:27:37提交: 雏菊
移动设备通常在用户发送的内容中包含表情符号表达式,显示时未经处理且显示乱码。因此php 微信昵称表情符号,本文介绍了PHP微信开发中涉及表情符号表达式的几种处理方法。
背景
进行微信开发时,您会发现存储微信昵称至关重要。
但是这个邪恶的微信支持表情符号作为昵称,这有点痛苦
通常,在设计Mysql表时,使用UTF8字符集。插入带有表情符号的昵称字段,该字段将消失,整个字段变为空字符串。这是怎么回事?
事实证明,Mysql的utf8字符集为3个字节,而表情符号为4个字节,因此无法存储整个昵称。我该怎么办?让我介绍一些方法
解决方案
1、使用utf8mb4字符集
如果您的mysql版本>
这种4字节的utf8编码与旧的3字节的utf8字符集完全兼容,并且可以直接存储表情符号表达式,这是最好的解决方案
关于字节增加导致的性能损失,我看到了一些评估,这些评估几乎可以忽略不计
2、使用base64编码
如果由于某种原因不能使用utf8mb4,也可以使用base64通过曲线保存国家/地区
使用诸如base64_encode之类的功能编码的表情符号可以直接存储在utf8字节集的数据表中,取出后可以对其进行解码
3、杀死表情符号
表情符号是一件麻烦的事情,即使您可以存储它,也可能无法完美显示。在iOS以外的平台上php 微信昵称表情符号,例如PC或Android。如果需要显示表情符号,则必须准备很多表情符号图像并使用第三方前端库。即使这样,表情符号图片仍可能不够完整,无法显示。在大多数业务场景中,表情符号不是必须的。我们可以适当考虑将其杀死并节省各种费用
经过一番艰苦的Google工作,我终于找到了可靠且可用的代码:
// 过滤掉emoji表情 function filterEmoji($str) { $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str); return $str; }
以上是PHP微信开发中涉及表情符号表达的几种处理方法的总结。基本思想是遍历字符串中的每个字符。如果字符长度为4个字节,则将其删除。 。希望大家都喜欢!
Tags标签:php 微信昵称表情符号 php 微信昵称表情符号 微信昵称符号