微信开发时候,有些用户使用Emoji表情作为用户昵称,导致数据库保存昵称时候不识别导致昵称为空,现在提出以下解决方案:/**<br>
+----------------------------------------------------------<br>
* 过滤用户昵称里面的特殊字符<br>
+----------------------------------------------------------<br>
* @param string $str 待输出的用户昵称<br>
+----------------------------------------------------------<br>
*/<br>
function jsonName($str) {<br>
if($str){<br>
$tmpStr = json_encode($str);<br>
$tmpStr2 = preg_replace("#(\ud[0-9a-f]{3})#ie","",$tmpStr);<br>
$return = json_decode($tmpStr2);<br>
if(!$return){<br>
return jsonName($return);<br>
}<br>
}else{<br>
$return = '微信用户-'.time();<br>
} <br>
return $return;<br>
}原理是判断nickname是否为空,如为空,则随机一个名称保存,如存在表情,过滤掉表情保存。
过滤表情那一行,我这里看到的表情json_encode之后前两位是ud,因此采用了这个,你们可以根据自己的实际情况修改。
还有就是,有人使用http://www.zhihu.com/question/37131723?sort=created这个解决方案,因人而异,大家都可以借鉴,同时如有更好的方案,请留言分享一下。
AD:真正免费,域名+虚机+企业邮箱=0元
微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号