您的位置:首页 > 移动开发 > 微信开发

微信接口获取昵称中的表情符的过滤

2015-08-09 23:32 459 查看
$tmpStr = '{"nickname":"\ue131\u6f6e\u978b\uff5e\u9ad8\u6893\u94b0\ud83d\udc5f\ud83d\udc5f\ud83d\udc5f"}';
$tmpStr = '{"nickname" : "\u00ce.LoVe.\ue022U-Y.t666666666\ue420"}';
$nickname = json_decode($tmpStr, true);
$tmpStr = json_encode($nickname['nickname']);
$tmpStr = preg_replace("#(\\\ud[0-9a-f]{3})|(\\\ue[0-9a-f]{3})#ie","",$tmpStr); //将emoji的unicode置为空,其他不动
$text = json_decode($tmpStr, true);

print_r($text);//你好 \ue415 hello 123


对于通过微信接口获取的昵称中,有时会带有表情符号,PC端必须通过找到对应的表情,以图片形式来展示。有时为了简单粗暴的解决,就是直接过滤掉这些表情符号,在固定区段的unicode的编码,这样也不会有筹码出现

其实有时如“\ud83d\udc5f”表情符号,这是为unicode编码形式,我们需要把它转化为16进制的编码,如\xF0\x9F\x91\x9F

再去对应符号中找到,可以从网上搜索php-emoji-master,这里包括了对应的编码转表情的方式

如果为了方便,可以不显示,那就用上面的粗暴的过虑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: