微信小程序获取带表情的微信名乱码问题

在后台获取完微信用户数据后,对微信名进行UTF-8编码

URLEncoder.encode(nickName, "utf-8")

,将编码后的结果储存到数据库中,环境为mysql数据库。

完整代码:

/*** 解密用户敏感数据* @param encryptedData 明文,加密数据* @param iv  加密算法的初始向量* @param code  用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key* @return*/@RequestMapping(value = "/decodeUserInfo",method ={ RequestMethod.POST,RequestMethod.GET})public JSONObject decodeUserInfo(@RequestParam(value = "encryptedData")String encryptedData, @RequestParam(value = "iv")String iv, @RequestParam(value = "code")String code){JSONObject result=new JSONObject();try {/***  如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),*  可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。*  换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。*  前提是微信开放平台认证绑定了才可以获取到unionid否则只有openid*/result=WechatUtil.getDeCodeUserInfo(encryptedData,WechatUtil.getSessionKeyAndOpenid(code,requestUrl,appid,appSecret).getString("session_key"),iv);WechatInfo wechatInfo=new WechatInfo();wechatInfo.setUserAvatarUrl(result.getString("avatarUrl"));String nickName = result.getString("nickName");//获取用户名wechatInfo.setUserNickName(URLEncoder.encode(nickName, "utf-8"));//将微信昵称用utf-8编码后储存wechatInfo.setOpenId(result.getString("openId"));result.put("isDept",wechatInfoService.execWechatInfo(wechatInfo));logger.info("解密后的信息"+result.toString());}catch (Exception e){e.printStackTrace();logger.error(e.getMessage());}return result;}

读取微信名的时候,在实体类内定义一个新属性,用来接收解码后的微信名,供页面显示。

   //UTF-8编码后的字符private String userNickNameUTF8;public String getUserNickNameUTF8() {try {//UTF-8解码后的字符return URLDecoder.decode(userNickName, "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return "";}public void setUserNickNameUTF8(String userNickNameUTF8) {this.userNickNameUTF8 = userNickNameUTF8;}

需要注意的是:存储时,使用的是实体中与数据库字段相对应的属性;而读取的时候,使用的实体中新定义的属性。

posted @ 2018-07-23 10:15 花生福 阅读( ...) 评论( ...) 编辑 收藏

微信小程序获取带表情的微信名乱码问题相关推荐

  1. 微信小程序获取当前位置和城市名

    这篇文章主要介绍了微信小程序获取当前位置和城市名的思路,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 目录 一.授权并获取经纬度 腾讯地图API **简介** Hello world! 一. ...

  2. 微信小程序自带地图_微信小程序开发之之地图功能(map)

    本文将带你了解微信小程序开发之之地图功能(map),希望本文对大家学微信有所帮助. 主要介绍微信小程序中的地图模块相关功能.基本使用地图组件使用起来也很简单..wxml 1212参数列表及说明如下:除 ...

  3. 微信小程序自带地图_微信小程序之map地图

    微信小程序地图操作比较简单,api也很少,使用map组件来展示.说到地图,那就先来看基础定位: 定位用到wx.getLocation(OBJECT)函数,代码如下: wx.getLocation({ ...

  4. 微信小程序自带地图_微信小程序地图上选择位置

    实现效果 很多小程序都有如下需求: 小程序打开后,以文字形式显示用户所在位置,如果用户觉得不准,可以打开地图,在地图上自己选择位置,选择完成后,显示的用户的位置会发生变化 点击地址选择地点 选择地点之 ...

  5. 微信小程序自带地图_微信小程序获取当前位置并调用微信内置地图打开

    图示: index.wxml 定位 index.js //index.js //获取应用实例 const app = getApp() Page({ data: { }, map:function() ...

  6. 微信小程序获取云服务器数据,微信小程序云开发服务端数据库API 获取集合数据...

    Collection.get / Query.get 获取集合数据,或获取根据查询条件筛选后的集合数据. 如果没有指定 limit,则默认最多取 20 条记录. 如果没有指定 skip,则默认从第 0 ...

  7. 微信小程序获取当前页面url

    微信小程序获取当前页面url 微信小程序获取当前页面的URL地址

  8. 微信小程序获取住户地区信息

    微信小程序获取住户地区信息 微信小程序获取住户地区信息 微信小程序获取住户地区信息 1.现在app.js里面配置如下 { //向用户申请获取授权"permission": {&qu ...

  9. 微信小程序-获取用户位置(经纬度+所在城市)

    微信小程序-获取用户位置(经纬度+所在城市) 文章目录 微信小程序-获取用户位置(经纬度+所在城市) 一.目标 二.实现思路 三.实现步骤 3.1 用到的接口函数 3.2 具体步骤 3.2.1 创建界 ...

最新文章

  1. django-pure-pagination 组件使用
  2. 20180530更新
  3. gitignore重要技巧
  4. H5中canvas和svg绘图方式介绍
  5. new调用函数,new具体做了什么?
  6. Haroopad安装与配置: Linux系统下最好用的Markdown编辑器
  7. 我的Android进阶之旅------gt;Android Studio 快捷键整理分享
  8. 云原生数据中台的 What、Why、Who、How和Where
  9. 根据Dockerfile构建镜像
  10. 24小时改变你的人生【转】
  11. linux扫描仪安装程序,给扫描仪在Linux系统里安个家
  12. matlab中.mat文件用法
  13. 网页/公众号音乐下载
  14. sdcard里边的东西能删除吗_手机内存中有一个sdcard文件夹删除不了
  15. 浅谈计算机网络及交换机基础配置
  16. 李云的25条职场发展原则
  17. 云南农业大学matlab,云南农业大学关于公第七届学生科技.doc
  18. Android系统在超级终端下命令大全
  19. [附源码]计算机毕业设计JAVA航空售票管理系统
  20. 中国长春西汀市场现状研究分析与发展前景预测报告(2022)

热门文章

  1. Codeforces869 E. The Untended Antiquity (随机化算法)
  2. 「数据架构」介绍下一代主数据管理(MDM)
  3. easypoi 多sheet导入_easy-poi: Easy-POI是一款Excel导入导出解决方案组成的轻量级开源组件。...
  4. JVM(4)—类加载机制
  5. 配方奶粉,尽量不用鲜奶
  6. 解析解与数值解的区别
  7. find()和findIndex()区别和用法
  8. [计算机一级MS备考]
  9. 如何拿到阿里offer的?面试流程及面试题
  10. EndNote自动生成毕业论文GB7714引文格式教程