$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,这里包括了对应的编码转表情的方式
如果为了方便,可以不显示,那就用上面的粗暴的过虑