微信获取nickname中存在Emoji导致保存为空问题的解决
微信开发时候,有些用户使用Emoji表情作为用户昵称,导致数据库保存昵称时候不识别导致昵称为空,现在提出以下解决方案:
/**
+----------------------------------------------------------
* 过滤用户昵称里面的特殊字符
+----------------------------------------------------------
* @param string $str 待输出的用户昵称
+----------------------------------------------------------
*/
function jsonName($str) {
if($str){
$tmpStr = json_encode($str);
$tmpStr2 = preg_replace("#(\\\ud[0-9a-f]{3})#ie","",$tmpStr);
$return = json_decode($tmpStr2);
if(!$return){
return jsonName($return);
}
}else{
$return = '微信用户-'.time();
}
return $return;
}
原理是判断nickname是否为空,如为空,则随机一个名称保存,如存在表情,过滤掉表情保存。
过滤表情那一行,我这里看到的表情json_encode之后前两位是ud,因此采用了这个,你们可以根据自己的实际情况修改。
还有就是,有人使用http://www.zhihu.com/question/37131723?sort=created这个解决方案,因人而异,大家都可以借鉴,同时如有更好的方案,请留言分享一下
微信获取nickname中存在Emoji导致保存为空问题的解决的更多相关文章
- c# 应用NPOI 获取Excel中的图片,保存至本地的算法
要求:读取excel中的图片,保存到指定路径 思路: 利用NPOI中 GetAllPictures()方法获取图片信息 步骤: 1.新建一个Windows窗体应用程序 2.桌面新建一个excel,贴 ...
- [Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法
转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类 ...
- php获取网页中图片并保存到本地的代码
php获取网页中图片并保存到本地的代码,将网页中图片保存本地文件夹: <?php /** * 获取网页中图片,并保存至本地 * by www.jbxue.com */ header(" ...
- 微信nickname乱码(emoji)及mysql编码格式设置(utf8mb4)解决的过程
转:https://segmentfault.com/a/1190000004594385 项目中涉及保存微信的nickname,之前一直正常使用,但是突然遇到一个之前没有遇到的问题.经过调试发现错误 ...
- mysql 微信用户昵称emoji 完整保存
微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情.起先,我总以为MySQL只能保存纯文本数据.但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji ...
- iOS开发学习-类似微信聊天消息中的电话号码点击保存到通讯录中的功能
类似微信聊天消息中的电话号码点击保存到通讯录中的功能,ABAddress的实现在iOS9中是不能正常使用的,点击完成后,手机会非常的卡,iOS9之后需要使用Contact新提供的方法来实现该功能.快捷 ...
- 移除微信昵称中的emoji字符
移除微信昵称中的emoji字符: /** * 移除微信昵称中的emoji字符 * @param type $nickname * @return type */ function removeEmoj ...
- php获取网页中图片并保存到本地
php获取网页中图片并保存到本地的代码,将网页中图片保存本地文件夹: save_img("http://www.jbxue.com" ?>
- net 编译报错:编辑器或项目正在尝试签出在内存中修改的文件,这将导致保存该文件
1,报错提示: 编辑器或项目正在尝试签出在内存中修改的文件,这将导致保存该文件. 在生成过程中保存文件是危险的,这可能会在将来导致不正确的生成输出. 是否仍然继续签出? 2,原因:licenses.l ...
随机推荐
- UOJ20 解方程
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- Jenkins离线下载插件,并安装
在jenkins点击插件进入wiki,然后点击列表下载一个版本的包 安装是,选择高级的tab,下面就有安装: 还有一种方法,就是装VPN,在高级设置VPN地址.
- Microsoft SQL Server,错误: 229 解决方案
今天我在数据库新建一个用户时,碰到了一个奇怪的问题,账号建好了,也指定了该账号上对应的数据库.但是,奇怪的问题出现了,死活不让我新建表,提示如下: 最后,给我找到问题所在了,就是在指定表权限的时候权限 ...
- Nginx反向代理tomcat
location /gm { root html; proxy_pass http://localhost:8080/gm; proxy_set_hea ...
- String.format()用法
package junit.test; import java.util.Date; import java.util.Locale; import org.junit.Test; pub ...
- JS-DOM 综合练习-动态添加删除班级成绩表
费了2个小时,才把原理弄懂,把问题逐个解决,当你发现你最后栽的那个点,是一个小石头拌的你,你起来是该哭还是该笑呢?只怪自己习武不精吧. 虽然问题都解决了,但是还有一个余留的问题就是鼠标经过input时 ...
- B450黑苹果之路(1)
安装黑苹果,采取的是懒人版写入磁盘分区中,然后再安装1)从硬盘中分两个区,一个是未来使用的目标分区,一个是磁盘镜像区2)由于HFS+支持逻辑分区,所以两个分区都放逻辑分区上,分区不格式化3)使用硬盘助 ...
- 重新注册iis的.NET Framework版本
说一个简单的方法,在VS2012.win7 sp1下亲测可用. 在开始菜单中找到VS 2012开发人员命令提示,然后执行命令:aspnet_regiis.exe -i 运行完成后截图如下:
- nginx主备配置
添加配置: proxy_next_upstream error timeout invalid_header http_500 http_503 http_502; upstream http.wea ...
- jpa datasource config
application.properties spring.datasource.driverClassName= spring.datasource.url= spring.datasource.u ...